1. 程式人生 > >JAVA基礎複習(三)繼承、多型、抽象類和介面

JAVA基礎複習(三)繼承、多型、抽象類和介面

1、超類也稱為父類或者基類,次類又稱為子類或者拓展類、派生類。子類從它的父類中繼承可訪問的資料域和方法,還可以新增新資料域和新方法。

2、繼承:子類並不是父類的一個子集,子類比它的父類包含更多的資訊和方法;父類中的私有資料域在該類之外是不可訪問的;不是所有是一種關係都應該用繼承來建模,但是繼承是用來是為是一種關係建模的;java是單一繼承的,即不應許多重繼承

3、關鍵字super指代父類,可以用於呼叫父類中的普通方法和構造方法

4、繼承的子類會直到最後一個構造方法建立一個構造方法鏈,如果要設計一個可以被繼承的類,最好提供一個無參構造方法避免程式出錯。

5、方法重寫即子類需要修改父類中定義的方法的實現,僅當例項方法是可訪問時,它才能被覆蓋,靜態方法也能被繼承,但是不能被覆蓋,如果父類中的靜態方法在子類中被重新定義,可以通過父類名.靜態方法名呼叫隱藏的靜態方法

6、多型:意味著父類的變數可以指向子類,使用父類物件的地方都可以使用子類的物件

7、動態繫結:呼叫方法由的實際型別決定,即由等號右邊決定,左邊為宣告型別,這個過程稱為型別轉換

8、instanceof可以用於判斷兩個資料型別是否可以隱身轉換成功(oneObject instanceof otherObject 即可,為Boolean型)

9、隱式轉換即向上轉換,顯示轉換即向下轉換,例:蘋果總是一種水果,但是水果不一定是蘋果

10、protected成員可以被子類訪問

11、防止類拓展可以使用final來修飾,即最終類

12、抽象類不可以用於建立物件,包含抽象方法,具體在子類中實現,類使用abstract修飾,方法使用protected修飾

13、如果抽象父類的子類不能實現其父類的所有抽象方法,那麼子類也必須定義為抽象類

14、介面只包含常量和抽象方法,介面用interface修飾,預設public static final修飾變數和public abstract修飾方法,所以可以省略方法

15、介面和抽象類都定義了物件共同的行為,在是一種關係中較強的父子關係使用類建模,是一類關係使用介面建模

16、可以結合抽象類和介面的優點,建立一個介面,使用一個抽象類來實現它(介面不能有具體方法,抽象類可以)