面向对象(四)
/*
1:final關(guān)鍵字(掌握)(1)是最終的意思,可以修飾類,方法,變量。(2)特點(diǎn):A:它修飾的類,不能被繼承。B:它修飾的方法,不能被重寫。C:它修飾的變量,是一個(gè)常量。(3)面試相關(guān):A:局部變量a:基本類型 值不能發(fā)生改變b:引用類型 地址值不能發(fā)生改變,但是對(duì)象的內(nèi)容是可以改變的B:初始化時(shí)機(jī)a:只能初始化一次。b:常見的給值定義的時(shí)候。(推薦)構(gòu)造方法中。2:多態(tài)(掌握)(1)同一個(gè)對(duì)象在不同時(shí)刻體現(xiàn)出來的不同狀態(tài)。(2)多態(tài)的前提:A:有繼承或者實(shí)現(xiàn)關(guān)系。B:有方法重寫。C:有父類或者父接口引用指向子類對(duì)象。多態(tài)的分類:a:具體類多態(tài)class Fu {}class Zi extends Fu {}Fu f = new Zi();b:抽象類多態(tài)abstract class Fu {}class Zi extends Fu {}Fu f = new Zi();c:接口多態(tài)interface Fu {}class Zi implements Fu {}Fu f = new Zi();(3)多態(tài)中的成員訪問特點(diǎn)A:成員變量編譯看左邊,運(yùn)行看左邊B:構(gòu)造方法子類的構(gòu)造都會(huì)默認(rèn)訪問父類構(gòu)造C:成員方法編譯看左邊,運(yùn)行看右邊D:靜態(tài)方法編譯看左邊,運(yùn)行看左邊為什么?因?yàn)槌蓡T方法有重寫。(4)多態(tài)的好處:A:提高代碼的維護(hù)性(繼承體現(xiàn))B:提高代碼的擴(kuò)展性(多態(tài)體現(xiàn))(5)多態(tài)的弊端:父不能使用子的特有功能。現(xiàn)象:子可以當(dāng)作父使用,父不能當(dāng)作子使用。(6)多態(tài)中的轉(zhuǎn)型A:向上轉(zhuǎn)型從子到父B:向下轉(zhuǎn)型從父到子(7)孔子裝爹的案例幫助大家理解多態(tài)(8)多態(tài)的練習(xí)A:貓狗案例B:老師和學(xué)生案例3:抽象類(掌握)(1)把多個(gè)共性的東西提取到一個(gè)類中,這是繼承的做法。但是呢,這多個(gè)共性的東西,在有些時(shí)候,方法聲明一樣,但是方法體。也就是說,方法聲明一樣,但是每個(gè)具體的對(duì)象在具體實(shí)現(xiàn)的時(shí)候內(nèi)容不一樣。所以,我們在定義這些共性的方法的時(shí)候,就不能給出具體的方法體。而一個(gè)沒有具體的方法體的方法是抽象的方法。在一個(gè)類中如果有抽象方法,該類必須定義為抽象類。(2)抽象類的特點(diǎn)A:抽象類和抽象方法必須用關(guān)鍵字abstract修飾B:抽象類中不一定有抽象方法,但是有抽象方法的類一定是抽象類C:抽象類不能實(shí)例化D:抽象類的子類a:是一個(gè)抽象類。b:是一個(gè)具體類。這個(gè)類必須重寫抽象類中的所有抽象方法。(3)抽象類的成員特點(diǎn):A:成員變量有變量,有常量B:構(gòu)造方法有構(gòu)造方法C:成員方法有抽象,有非抽象(4)抽象類的練習(xí)A:貓狗案例練習(xí)B:老師案例練習(xí)C:學(xué)生案例練習(xí)D:員工案例練習(xí)(5)抽象類的幾個(gè)小問題A:抽象類有構(gòu)造方法,不能實(shí)例化,那么構(gòu)造方法有什么用?用于子類訪問父類數(shù)據(jù)的初始化B:一個(gè)類如果沒有抽象方法,卻定義為了抽象類,有什么用?為了不讓創(chuàng)建對(duì)象C:abstract不能和哪些關(guān)鍵字共存a:final 沖突b:private 沖突c:static 無意義4:接口(掌握)(1)回顧貓狗案例,它們僅僅提供一些基本功能。比如:貓鉆火圈,狗跳高等功能,不是動(dòng)物本身就具備的,是在后面的培養(yǎng)中訓(xùn)練出來的,這種額外的功能,java提供了接口表示。(2)接口的特點(diǎn):A:接口用關(guān)鍵字interface修飾interface 接口名 {}B:類實(shí)現(xiàn)接口用implements修飾class 類名 implements 接口名 {}C:接口不能實(shí)例化D:接口的實(shí)現(xiàn)類a:是一個(gè)抽象類。b:是一個(gè)具體類,這個(gè)類必須重寫接口中的所有抽象方法。(3)接口的成員特點(diǎn):A:成員變量只能是常量默認(rèn)修飾符:public static finalB:構(gòu)造方法沒有構(gòu)造方法C:成員方法只能是抽象的默認(rèn)修飾符:public abstract(4)類與類,類與接口,接口與接口A:類與類繼承關(guān)系,只能單繼承,可以多層繼承B:類與接口實(shí)現(xiàn)關(guān)系,可以單實(shí)現(xiàn),也可以多實(shí)現(xiàn)。還可以在繼承一個(gè)類的同時(shí),實(shí)現(xiàn)多個(gè)接口C:接口與接口繼承關(guān)系,可以單繼承,也可以多繼承(5)抽象類和接口的區(qū)別(自己補(bǔ)齊)?A:成員區(qū)別抽象類:接口:B:關(guān)系區(qū)別:類與類:類與接口:接口與接口:C:設(shè)計(jì)理念不同抽象類:is a,抽象類中定義的是共性功能。接口:like a,接口中定義的是擴(kuò)展功能。(6)練習(xí):A:貓狗案例,加入跳高功能B:老師和學(xué)生案例,加入抽煙功能0*\
轉(zhuǎn)載于:https://www.cnblogs.com/dreamOfChen/p/4884449.html
總結(jié)
- 上一篇: IBM WebSphere MQ 7.5
- 下一篇: Aizu 0525 Osenbei(状压