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