資源描述:
《JAVA繼承、抽象類、接口.doc》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、JAVA繼承、抽象類、接口編輯人:星辰·櫻聯(lián)系QQ:838826112一.類的繼承通過繼承可以實(shí)現(xiàn)代碼的復(fù)用,被繼承的類稱為父類或超類(superclass),由繼承而得到的類稱為子類(subclass)。一個(gè)父類可以擁有多個(gè)子類,但一個(gè)類只能有一個(gè)直接父類,這是因?yàn)镴AVA語言中不支多重繼承。子類繼承父類的成員變量和成員方法,同時(shí)可以修改父類的成員變量或重寫父類的方法,還可以添加新的成員變量或成員方法。JAVA語言中有一個(gè)名為java.lang.Object的特殊類,所有的類都是直接或間接地繼承該類而得到的。1.
2、子類的創(chuàng)建類的繼承是通過extends關(guān)鍵字來實(shí)現(xiàn)的,在定義類時(shí)若使用ectends關(guān)鍵字指出新定義類的父類,就是在兩個(gè)類之間建立了繼承關(guān)系。新定義的類稱為子類,它可以從父類那里繼承所有非private的成員作為自己的成員。子類的創(chuàng)建:*格式:classSubClassextendsSuperClass*{*.*.*.*}2.調(diào)用父類中特定的構(gòu)造方法在沒有明確地指定構(gòu)造方法時(shí),子類還是會(huì)先調(diào)用父類中沒有參數(shù)的構(gòu)造方法,以便進(jìn)行初始化的操作。在子類的構(gòu)造方法中可以通過super()來調(diào)用父類特定的構(gòu)造方法。例://以
3、Person作為父類,創(chuàng)建學(xué)生子類Student,并在子類中調(diào)用父類里某指定的構(gòu)造方法。classPerson2{privateStringname;privateintage;publicPerson2()//定義Person2類的無參構(gòu)造方法{System.out.println("調(diào)用了Person2類的無參構(gòu)造方法");}publicPerson2(Stringname,intage)//定義Person2類的有參構(gòu)造方法{System.out.println("調(diào)用了Person2類的有參構(gòu)造方法");t
4、his.name=name;this.age=age;}publicvoidshow(){System.out.println("姓名:"+name+"年齡:"+age);}}classStudent2extendsPerson2//定義繼承自Person2類的子類Student2{privateStringdepartment;publicStudent2()//定義Student2類的無參構(gòu)造方法{System.out.println("調(diào)用了學(xué)生類的無參構(gòu)造方法Student2()");}publicStud
5、ent2(Stringname,intage,Stringdep)//定義Student2類的有參構(gòu)造方法{super(name,age);//調(diào)用父類的胡參構(gòu)造方法department=dep;System.out.println("我是"+department+"學(xué)生");System.out.println("調(diào)用了學(xué)生類的有參構(gòu)造方法Student2(Stringname,intage,Stringdep)");}}publicclassApp8_2{publicstaticvoidmain(String[
6、]args){Student2stu1=newStudent2();//創(chuàng)建對象,并調(diào)用無參構(gòu)造方法Student2stu2=newStudent2("李小四",23,"信息系");//創(chuàng)建對象并調(diào)用有參構(gòu)造方法stu1.show();stu2.show();}}/*在子類中訪問你類的構(gòu)造方法,其格式為super(參數(shù)列表)。*super()可以重載,也就是說,super()會(huì)根據(jù)參數(shù)的個(gè)數(shù)與類型,執(zhí)行父類相應(yīng)的構(gòu)造方法。*調(diào)用父類構(gòu)造方法的super()語句必須寫在子類構(gòu)造方法的第一行。*super()與this
7、()的功能相似,但super()是從子類的構(gòu)造方法調(diào)用父類的構(gòu)造方法,而this()則是在同一個(gè)類內(nèi)調(diào)用其他的構(gòu)造方法。*super()與this()均必須放在構(gòu)造方法內(nèi)的第一行,也就是這個(gè)原因,super()與this()無法同時(shí)存在同一個(gè)構(gòu)造方法內(nèi)。*與this關(guān)鍵字一樣,super指的也是對象,所以super同樣不能在static環(huán)境中使用,包括靜態(tài)方法和靜態(tài)初始化器(static語句塊)。3.在子類中訪問父類的成員例://在學(xué)生子類Student中訪問父類Person的成員。用protected修飾符和su
8、per關(guān)鍵字訪問父類的成員classPerson3{protectedStringname;//用protected(保護(hù)成員)修飾符修飾protectedintage;publicPerson3()//定義Person3類的“不做事”的無參構(gòu)造方法{}publicPerson3(Stringname,intage)//定義Person3類的有參構(gòu)造方法{t