Java基礎(chǔ)-第9天教學(xué)_第1頁
Java基礎(chǔ)-第9天教學(xué)_第2頁
Java基礎(chǔ)-第9天教學(xué)_第3頁
Java基礎(chǔ)-第9天教學(xué)_第4頁
Java基礎(chǔ)-第9天教學(xué)_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、第九天面向?qū)ο蟆窘虒W(xué)內(nèi)容】1、繼承了父類屮成員變量的特點2、繼承-子父類中成員函數(shù)特點-重寫&應(yīng)用3、重寫的注意事項4、子父類中構(gòu)造函數(shù)特點(super。)5、子類實例化過程的細節(jié)6 super()應(yīng)用7、final關(guān)鍵字8、抽象類產(chǎn)生&特點&細節(jié)9、抽象類練習(xí)10、接口定義&實現(xiàn)11、接口多實現(xiàn)12、繼承同時多實現(xiàn)13、接口的多繼承14、沒有抽象方法的抽象類的山來【代碼清單】此清單需在每天下午放學(xué)后填寫【教學(xué)總結(jié)】:【第一階段】【目標:繼承子父類中成員變量的特點】了解了繼承給我們帶來的好處,提高了代碼的復(fù)用性。繼承讓類與類或者說對象與對象之間產(chǎn)生了關(guān)系。當(dāng)繼承

2、出現(xiàn)后,類的成員z間產(chǎn)生了那些變化呢?類的成員重點學(xué)習(xí)成員變最、成員函數(shù)和構(gòu)造函數(shù)的變化。成員變量:如果了類父類中出現(xiàn)不同名的成員變量,這時的訪問是沒冇任何問題。 class fu/fu中的成員變量。int num = 5;class zi extends fu/zi中的成員變量int num2 = 6;void show()訪問父類中的numsystcm.out.printlnc'fu num=m+num);訪問了類中的num2system.out.println(hzi num2=m+num2);class demopublic static void main(stringu a

3、rgs)ziz = new zi(); 創(chuàng)建子類對象 z.show(); /調(diào)用子類中的show方法代碼說明:fu類中的成員變量是非私有的,了類屮可以肓接訪問,若fu類屮的成員變量私有 了,子類是不能直接訪問的。當(dāng)子父類屮出現(xiàn)了同名成員變量時,在子類屮若要訪問父類屮的成員變最,必須使用關(guān)鍵字 s叩er來完成。class fufu中的成員變量。 int num = 5;class zi extends fu/zi中的成員變量int num = 6;void show()/子父類中出現(xiàn)了同名的成員變量時在了類中需要訪問父類中非私冇成員變量時,需要使用super關(guān)鍵字 訪問父類中的numsystem

4、.out.println("fu num="+supet.num);訪問子類中的mim2system.out.println("zi num2="4-this.num);class demo5public static void main(string args) zi z = new zi(); 創(chuàng)建子類對象 z.show(); /調(diào)用子類中的show方法上述代碼圖解圖解說明:當(dāng)程序執(zhí)行ncwzi();這時會加載zi類字節(jié)碼文件,但由于zi類繼承了 fu類,因 此需要將父類字節(jié)碼文件加載進方法區(qū)。當(dāng)zi和fu的字節(jié)碼加載完畢后。會執(zhí)行newzi();即

5、在 堆內(nèi)存中創(chuàng)建zi類対象,并為其分配內(nèi)存地址0x99;対象的內(nèi)存空間分配結(jié)朿之后,開始成員變 量默認初始化,此時需要注意fu的num同樣也會在此對象屮。緊接著開始zi構(gòu)造函數(shù)壓棧,在 zi的構(gòu)造函數(shù)屮有隱式的super()語句,此時fu的構(gòu)造函數(shù)也會壓棧,fu的構(gòu)造函數(shù)壓棧后會將 fu的num顯示初始化。接著fu構(gòu)造函數(shù)彈棧,執(zhí)fj: zi的構(gòu)造函數(shù),zi的num顯示初始化。接著 zi構(gòu)造函數(shù)彈棧。此時zi對象在堆中創(chuàng)建完成,并將內(nèi)存地址0x99賦值給main方法中的z引用。 接著調(diào)用zi的show方法,show方法壓棧。注意:supei和this的用法相似,(his:代表木類的對象引用。s

6、uper:代表的父類內(nèi)存空間,而 不是父類的引用。子父類中同名的成員變量,這利悄況開發(fā)中不用,因為父類一旦描述完成了屬性,子類直接使 用就可以了?!緦W(xué)習(xí)效果】1、掌握繼承中成員變量的變化細節(jié)。用代碼演示2、繼承中對象創(chuàng)建內(nèi)存圖。畫圖3、掌握this和super的用法?!局R點過度】學(xué)習(xí)了繼承屮了父類屮成員變蜃的變化后,接著學(xué)習(xí)了父類屮成員函數(shù)的變化?!镜诙A段】【目標:繼承子父類中成員函數(shù)特點重寫&應(yīng)用】當(dāng)在程序中通過對彖調(diào)用方法時,會先在了類中查找冇沒冇對應(yīng)的方法,若了類中存在就會執(zhí) 行子類中的方法,若子類中不存在就會執(zhí)行父類中相應(yīng)的方法。class fupublic void sh

7、ow() system.out.printlnctu 類中的 show 方法執(zhí)行”);class zi extends fupublic void show2()system.out.println("zi 類中的 show2 方法執(zhí)行”);public class testpublic static void main(string args) zi z = new zi();z.showo; 了類中沒有show方法,但是可以找到父類方法去執(zhí)行z.show2();成員方法特姝情況覆蓋了類中出現(xiàn)與父類一模一樣的方法時,會出現(xiàn)覆蓋操作,也稱為override重耳、復(fù)寫或者 覆蓋。cla

8、ss fuvoid show()system.out.println(nfu show”);class zi extends fu了類復(fù)寫了父類的show方法 void show()system.out.println("zi show");覆蓋的應(yīng)用:當(dāng)子類需要父類的功能,而功能主體子類有白己特有內(nèi)容時,可以復(fù)寫父類中的方法,這 樣,即沿襲了父類的功能,又定義了子類特有的內(nèi)容。舉例:比如手機,當(dāng)描述一個手機時,它具有發(fā)矩信,打電話,顯示來電號碼功能,后期 由于手機需婆在來電顯示功能中增加顯示姓名和頭像,這時可以重新定義一個類描述手機,并 繼續(xù)原有的描述手機的類。并在新定義

9、的類中覆蓋來電顯示功能,在其中增加顯示姓名和頭像 功能。public class test public static void main(stringf args) new newphone(). shownum();class phonepublic void sendmessage() system.out.println("發(fā)短信”);public void call() system.out.println("打電話”);public void shownum() system.out.println(h 來電顯示號碼”);class newphone exten

10、ds phone 覆蓋父類的來電顯示號碼功能,并增加自己的顯示姓名和圖片功能 public void shownum()調(diào)用父類已經(jīng)存在的功能使用supersupe r.shownum();增加自己特有顯示姓名和圖片功能system.out.println ("顯示來電姓名”); system.out.println("® 示頭像");【學(xué)習(xí)效果】1、掌握成員函數(shù)調(diào)用的方式。代碼加畫圖演示2、掌握重寫的特點。用代碼體現(xiàn)?!局R點過度】明白了繼承中子父類中成員函數(shù)的特點和重寫體現(xiàn)。那么現(xiàn)在學(xué)習(xí)下重寫的細節(jié)問題?!镜谌A段】【目標:重寫的注意事項】重寫需要注

11、意的細節(jié)問題:1、子類方法覆蓋父類方法,必須要保證權(quán)限人于等于父類權(quán)限。class fu() void show()public void method()class zi() extends fu public void show() 編譯運行沒問題 void mcthod() 編譯錯誤2、靜態(tài)只能覆蓋靜態(tài),或者被靜態(tài)覆蓋。3、寫法上稍微注意:必須一模一樣:兩數(shù)的返回值類型函數(shù)名參數(shù)列表都要一樣??偨Y(jié):當(dāng)一個類是另一個類中的一種時,可以通過繼承,來擴展功能。如果父類具備的功能內(nèi) 容需要子類特殊定義吋,使用重寫?!緦W(xué)習(xí)效果】明確重寫的細節(jié)問題。要求用代碼把細節(jié)問題體現(xiàn)出來?!局R點過度】學(xué)習(xí)完

12、了繼承中了類成員函數(shù)的變化z后,那么還冇特殊的函數(shù)構(gòu)造函數(shù)在繼承中冇沒冇 特殊變化呢?【第四階段】【目標:子父類中構(gòu)造函數(shù)特點(supero)在創(chuàng)建子類對象時,父類的構(gòu)造函數(shù)會先執(zhí)行,因為子類中所有構(gòu)造函數(shù)的第一行有默認 的隱式supero;語句,調(diào)用本類中的構(gòu)造函數(shù)用this(實參列表)語句,調(diào)用父類中的構(gòu)造函 數(shù)用super (實參列表)。為什么了類對象初始化都要訪問父類中的構(gòu)造函數(shù)?因為了類繼承了父類的內(nèi)容,所以創(chuàng) 建對象時必須要先看父類是如何對內(nèi)容進行初始化的public class test public static void main(string args) new zi();

13、)class fuint num ;fu()system.out.println(hfu 構(gòu)造函數(shù)m+num); num = 4;class zi extends fuzi()system.out.printlnc'zi 構(gòu)造函數(shù)n+num);執(zhí)行結(jié)果:fu構(gòu)造函數(shù)0zi構(gòu)造函數(shù)4子類中的構(gòu)造函數(shù)為什么有一句隱式的super()呢?原因:子類會繼承父類屮的內(nèi)容,所以子類在初始化時,必須先到父類中去執(zhí)行父類的初始化 動作。才可以更方便的使用父類中的內(nèi)容。當(dāng)父類中沒有空參數(shù)構(gòu)造函數(shù)時,子類的構(gòu)造函數(shù)必須有顯示的super語句指定耍訪問的父類 中的構(gòu)造函數(shù)?!緦W(xué)習(xí)效果】1、掌握了類對彖創(chuàng)建構(gòu)

14、造函數(shù)執(zhí)行順序,代碼和畫圖體現(xiàn)。2、掌握supei的用法。3、如下代碼執(zhí)行結(jié)果class fu extends objectfu()/super();/顯示初始化。system.out.println(ufu constructor run.a.h);fu(int x)/顯示初始化。system.out.println(nfu constructor run.b-.h+x);class zi extends fuzi()/super();system.out.println(nzi constructor run.c.h);zi(int x)super();system.out.println

15、(hzi constructor run.d.h+x); class demopublic static void main(stringj args)new zi();new zi(3);【知識點過度】明確了子類對象實例化過程小構(gòu)造函數(shù)的執(zhí)行過程,接著來學(xué)習(xí)子類實例化過程的小細節(jié)問 題?!镜谖咫A段】【目標:子類實例化過程的細節(jié)】如果子類的構(gòu)造函數(shù)第一行寫了 this調(diào)用了本類其他構(gòu)造函數(shù),那么super調(diào)用父類的語句還 有嗎?這時是沒有的,因為this()或者super(),只能定義在構(gòu)造函數(shù)的第一行,因為初始化動作要先執(zhí) 行。父類構(gòu)造函數(shù)中是否有隱式的super呢?也是有的。記?。褐灰菢?gòu)

16、造函數(shù)默認笫一行都是super();父類的父類是誰呢? super調(diào)用的到底是誰的構(gòu)造函數(shù)呢?java體系在設(shè)計,定義了一個所冇對象的父類object ,注意:類屮的構(gòu)造函數(shù)默認笫一行都有隱式的super。語句,在訪問父類屮的構(gòu)造函數(shù)。所以父類的構(gòu) 造函數(shù)既可以給h己的對象初始化,也可以給自己的了類對象初始化。如果默認的隱式super語句 沒冇對應(yīng)的構(gòu)造函數(shù),必須在構(gòu)造函數(shù)中通過this或者super的形式明確調(diào)用的構(gòu)造函數(shù)?!緦W(xué)習(xí)效果】1、明確this語旬和s叩cr語旬是否可以在同一個構(gòu)造函數(shù)屮出現(xiàn)呢?2、明確this語旬和super語旬為什么要定義在第一行呢?3、掌握this語句和supe

17、r語句的使用,用代碼體現(xiàn)。【知識點過度】學(xué)習(xí)完成了繼承小成員變量和成員兩數(shù)以及構(gòu)造兩數(shù)的特點之后,接卜來綜合應(yīng)用下。【第六階段】【目標:super()應(yīng)用】練習(xí):描述學(xué)生和工人這兩個類,將他們的共性rnnne和礙e抽取出來存放在父類中,并 提供相應(yīng)的get和set方法,同時需要在創(chuàng)建學(xué)生和工人對象就必須明確姓名和年齡定義person類,將student和worker共性抽取出來class person private string name;private int age;public person(string name, int age) / super(); = nam

18、e;this.age = age;public string getname() return name;public void setname(string name) = name;public int getage() return age;public void setage(int age) this.age = age;class student extends person / student類的構(gòu)造函數(shù)student(string name, int age) /使m super關(guān)鍵字調(diào)用父類構(gòu)造兩數(shù),進行相應(yīng)的初始化動作 super(name, age);

19、public void study() / studnet 中特有的方法system.out.println(this.getname() + "同學(xué)在學(xué)習(xí)”);class worker extends person worker(string name, int age) /使用super關(guān)鍵字調(diào)用父類構(gòu)造函數(shù),進行相應(yīng)的初始化動作 super(name, age);public void work() / worker 中特有的方法system.out.println(this.getname() 4-"工人在工作”);public class test public

20、static void main(string args) new student("小明",23).study。; new worker(h 小李 n,45).work();【學(xué)習(xí)效果】使用繼承描述事物體系結(jié)構(gòu)(如水果,蘋果,香蕉?;蛘呙枋鰟游?,狗,貓)。要求代碼體現(xiàn)?!局R點過度】學(xué)習(xí)到這里基本了解清楚繼承給我們帶來的好處和便利。任何事物都具有兩面性的,那繼承有 沒有什么弊端呢?【第七階段】【目標:final關(guān)鍵字】繼承的出現(xiàn)提高了代碼的復(fù)用性,并方便開發(fā)。但隨z也有問題,有些類在描述完z后,不想 被繼承,或者在有些類中的部分方法功能是固定的,子類不能重寫??墒钱?dāng)子類繼

21、承了這些特殊類 之后,就可以對其中的方法進行重寫,那怎么解決呢?要解決上述的這些問題,需要使用到一個關(guān)鍵字final, final的意思為最終,不可變。final是 個修飾符,它可以修飾類,類的成員,以及局部變量。final修飾類不可以被繼承,但是可以繼承其他類。final修飾的方法不可以被覆蓋,但父類中沒有被final修飾方法,子類覆蓋后可以加 finalofinal修飾的變量稱為常量,這些變量只能賦值一次。final修飾的引用類型變量,表示該引用變量的引用不能變,而不是引用所指的對象中的數(shù) 據(jù)還是可以變化的;什么時候會在程序中定義final常量呢?當(dāng)程序中一個數(shù)據(jù)是固定不變的,這時為了增加

22、閱讀性,可以給該數(shù)據(jù)起個名字。為了保證這 個變雖的值不被修改,加上final修飾,變雖就為閱讀性很強的常fie 1$寫規(guī)范,被final修飾的常 量名所有的字母都是大寫的。如果由多個單詞組成單詞間通過_連接。通常規(guī)范中:常量名稱所有字母大寫,若有多個單詞紐成,單詞間使用下劃線連接。 public static final修飾的常量稱為全局常量;public static final double pi = 3.14159265358979323846;public static final string app_separator = ”/”;【學(xué)習(xí)效果】掌握final的用法。用代碼演示【知識

23、點過度】學(xué)習(xí)完了繼承的好處和弊端之后,那么要學(xué)習(xí)基于繼承的其他應(yīng)用?!镜诎穗A段】【目標:抽象類產(chǎn)生&特點&細節(jié)】當(dāng)編寫一個類時,我們往往會為該類定義一些方法,這些方法是用來描述該類的行為方式, 那么這些方法都有具體的方法體。但是有的時候,某個父類只是知道子類應(yīng)該包含怎么樣的方法,但是無法準確知道子類如 何實現(xiàn)這些方法。比如一個圖形類應(yīng)該有一個求周長的方法,但是不同的圖形求周長的算法不 一樣。那該怎么辦呢?分析爭物時,發(fā)現(xiàn)了共性內(nèi)容,就出現(xiàn)向上抽取。會有這樣一種特殊情況,就是功能聲明 相同,但功能主體不同。那么這時也可以抽取,但只抽取方法聲明,不抽取方法主體。那么此 方法就是一個

24、抽彖方法。描述狗:行為:吼叫。描述狼:行為:吼叫。狗和狼z間有共性,可以進行向上抽取。抽取它們的所屬共性類型:犬科。由于狗和狼都具有 吼叫功能,但是他們具體怎么吼叫卻不一樣。這時在描述犬科時,發(fā)現(xiàn)了有些功能(吼叫)不貝體, 這些不具體的功能,需要在類屮標識出來,通過java屮的關(guān)鍵字abstract(抽象)。當(dāng)定義了抽象函數(shù)的類也必須被abstract關(guān)鍵字修飾,被abstract關(guān)鍵字修飾的類是抽象類。abstract class >科static abstract void吼叫();/抽象函數(shù)。需要abstract修飾,并分號;結(jié)束class dog extends 丿t科void吼

25、叫()system.out.printlnc1 汪汪汪汪“);class wolf extends 犬科void吼叫0system.out.println("嗷嗷嗷嗷”);) 抽象類的特點:1、抽象類和抽象方法都需要被abstract修飾。抽象方法一定要定義在抽象類屮。2、抽象類不可以創(chuàng)建實例,原因:調(diào)用抽象方法沒有意義。3、只有覆蓋了抽象類中所冇的抽彖方法后,其了類才可以實例化。否則該了類還是一個抽彖 類。之所以繼承,更多的是在思想,是而對共性類型操作會更簡單。細節(jié)問題:1、抽象類一定是個父類?是的,因為不斷抽取而來的。2、抽象類是否有構(gòu)造函數(shù)?冇,雖然不能給自己的對象初始化,但是

26、可以給自己的子類對象初始化。 抽象類和一般類的弄同點:相同:1、它們都是用來描述事物的。2、它們之屮都可以定義屬性和行為。不同:1、一般類可以具體的描述爭物。抽彖類描述事物的信息不具體2、抽象類中可以多定義一個成員:抽象函數(shù)。3、一般類可以創(chuàng)建對象,而抽象類不能創(chuàng)建對象。3、抽象類中是否可以不定義抽象方法。是可以的,那這個抽象類的存在到底有什么意義呢?僅僅是不讓該類創(chuàng)建對象。4、抽象關(guān)鍵字abstract不可以和哪些關(guān)鍵字共存?1、final: fianl修飾的類是無法被繼承的,而abstract修飾的類一定耍有子類。 final修飾的方法無法被覆蓋,但是abstract修飾的方法必須要被子類

27、去實現(xiàn)的。2、static:靜態(tài)修飾的方法屬于類的,它存在與靜態(tài)區(qū)中,和對象就沒關(guān)系了。 而抽象方法沒有方法體,使用類名調(diào)用它沒有任何意義。3 private:私有的方法子類是無法繼承到的,也不存在覆蓋,而abstract和 private 起使用修飾方法,abstract既要了類去實現(xiàn)這個方法,而private修飾了 類根木無法得到父類這個方法?;ハ嗝??!緦W(xué)習(xí)效果】1、明確抽象類的由來,需文字體現(xiàn)。2、描述生活中的一類事物,如:人(吃飯),中國人(使用筷子吃飯),美國人(使用刀叉吃 飯)。要求寫出分析和代碼。【知識點過度】基本了解抽象類的由來、特點和細節(jié)問題,那么我們就要對其進行應(yīng)用?!镜?/p>

28、九階段】【目標:抽象類練習(xí)】需求:公司中程序員有姓名,工號,薪水,工作內(nèi)容。項目經(jīng)理除了有姓名,工號,薪水,還有獎金,工作內(nèi)容。對給出需求進行數(shù)據(jù)建模。程序員屬性:姓名,工號,薪水行為:工作項目經(jīng)理屬性:姓名,工號,薪水,獎金行為:工作分析發(fā)現(xiàn)程序員和項目經(jīng)理之間的共性,應(yīng)該存在著關(guān)系??梢詫⑺麄兊墓残韵蛏铣閰У焦残?類型:員工。員工:屬性:姓名,工號,薪水行為:工作發(fā)現(xiàn)員工的工作內(nèi)容本身就不具體。應(yīng)該是抽象的,山具體的子類來體現(xiàn)的。abstract class employeeprivate string name;private string id;private double pay;構(gòu)

29、造一個員工對彖,一初始化就具備著三個屬性。 public employee(string name,string id,double pay) = name;this.id = id; this.pay = pay;工作行為,由于工作內(nèi)容不具體,用抽象類描述 public abstract void work();具體的子類:程序員。class programmer extends employeepublic programmer(string name,string id,double pay) super(name,id,pay);public void work()

30、system.out.println(ncode.n);具體的子類:經(jīng)理。class manager extends employee特有屬性。private double bonus;public manager(string name,string id,double pay,double bonus) super(name,id,pay); this.bonus = bonus;public void work()system.out.println(nmanagev);【學(xué)習(xí)效果】根據(jù)需求(計算長方形和圓形的而積)可以對數(shù)據(jù)建模。要求必須動手練習(xí)?!局R點過度】學(xué)習(xí)完了抽象類z后,我們

31、就會想這樣一個問題,若把抽象類中的所有方法都定義成抽象方法, 會發(fā)生什么呢?【第十階段】【目標:接口定義&實現(xiàn)】當(dāng)一個抽象類中的所有方法都是抽象方法時,那么這個抽象類就可以使用另外-種接口這種機 制來體現(xiàn)。接口怎么定義呢?定義普通的類或者抽象類可以使用class關(guān)鍵字,定義接口必須interface關(guān) 鍵字完成。interface class demoabstract void show 1();abstract void show2(); 接口中成員的特點:1、接口中町以定義變量,但是變屋必須有固定的修飾符修飾,public static final所以接口中的 變量也稱之為常量。2

32、接口中可以定義方法,方法也有固定的修飾符,public abstract3、接口屮的成員都是公共的。4、接口不可以創(chuàng)建對象。5、子類必須覆蓋掉接口中所有的抽彖方法后,子類才可以實例化。否則子類是一個抽象類。interface demo/定義一個名稱為demo的接口。public static final int num = 3;public abstract void show 1();public abstract void show2();定義了類去覆蓋接口屮的方法。了類必須和接口產(chǎn)生關(guān)系,類與類的關(guān)系是繼承,類與接口 之間的關(guān)系是實現(xiàn)。通過 關(guān)鍵字implementsclass demo

33、lmpl implements demo/了類實現(xiàn) demo 接 口。重寫接口中的方法。public void showl()public void show2()【學(xué)習(xí)效果】1、掌握接口的定義原則。用代碼測試2、了類和接口關(guān)系?【知識點過度】了解了接口的特點后,那么想想為什么要定義接口,使用抽象類描述也沒有問題,接口到底有 啥用呢?【第十一階段】【目標:接口多實現(xiàn)】接口最重要的體現(xiàn):解決多繼承的弊端。將多繼承這種機制在java中通過多實現(xiàn)完成了。interface avoid show 1();interface bvoid show2();class c implements a,b多實現(xiàn)

34、。同時實現(xiàn)多個接口。 public void showl()public void show2()怎么解決多繼承的弊端呢?弊端:多繼承時,當(dāng)多個父類中有相同功能時,了類調(diào)用會產(chǎn)生不確定性。其實核心原因就是在于多繼承父類中功能有主體,而導(dǎo)致調(diào)用運行時,不確定運行哪個主體內(nèi) 容。為什么多實現(xiàn)就解決了呢?因為接口中的功能都沒有方法體,由子類來明確?!緦W(xué)習(xí)效果】1、掌握接口如何解決多繼承的弊端。2、掌握類和接口的多現(xiàn)實關(guān)系?!局R點過度】接口和類之間可以通過實現(xiàn)產(chǎn)生關(guān)系,同吋也學(xué)習(xí)了類與類之間可以通過繼承產(chǎn)生關(guān)系。當(dāng)在 描述事物時,如果這個事物己經(jīng)是整個事物體系屮的一種,它乂需要擴展額外的功能,這時接

35、口就 派上用場了。【第十二階段】【目標:類繼承類同時實現(xiàn)接口】子類通過繼承父類擴展功能,通過繼承擴展的功能都是子類應(yīng)該具備的基礎(chǔ)功能。如果子類想 要繼續(xù)擴展其他類中的功能呢?這時通過實現(xiàn)接口來完成。class fupublic void show()interface interpulbic void show 1();class zi extends fu implements interpublic void show 1()接口的出現(xiàn)避免了單繼承的局限性。父類屮定義的事物的基木功能。接口中定義的事物的擴展 功能?!緦W(xué)習(xí)效果】掌握類與類,類與接口z間的關(guān)系,并有代碼演示?!局R點過度】學(xué)習(xí)類的時候,知道類與類z間可以通過繼承產(chǎn)生關(guān)系,接口和類z間可以通過實現(xiàn)產(chǎn)生關(guān)系, 那么接口與接口之間會有什么

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論