1.繼承:當定義的類中的成員變量和成員方法相似度較高時,可以用繼承定義一個父類,由子類繼承父類來減少代碼
量。格式:class 子類名 extends 父類名 { },其中父類又叫基類,超類,子類又叫派生類。例如:
學生類:
成員變量:name,age
構造方法:無參,帶參
成員方法:getXxx()/setXxx(),eat(),sleep()
老師類:
成員變量:name,age
構造方法:無參,帶參
成員方法:getXxx()/setXxx(),eat(),sleep()
在此時就可以定義一個父類:
人類:
成員變量:name,age
構造方法:無參,帶參
成員方法:getXxx()/setXxx(),eat(),sleep()
然後讓老師類和學生類繼承該父類,由此可見繼承A提高了代碼的複用性。B提高了代碼的維護性。C讓類與類之間產
生了關係,是多態的前提
2.方法重寫:子類的方法名,參數和父類完全一樣,將父類方法覆蓋。方法重寫必須存在繼承關係,一般是父類方法
功能不能滿足需求時使用。
3.繼承的特點:java支持單繼承,不支持多繼承,即一個子類不能同時繼承多個父類。但java支持多重繼承。
4.繼承的成員變量關係:若成員變量的名字相同,遵循就近原則,從子類成員變量,到子類局部變量,最大到父類的
成員變量之間尋找。
5.super關鍵字:代表父類存儲空間的標識(即父類的對象)同this關鍵字不同,super.成員變量指父類的成員變量,
super.成員方法指父類的成員方法。
6.繼承間構造方法的關係:子類中所有的構造方法默認都會訪問父類中空參構造,因爲子類會繼承父類的數據,所以
子類初始化前,一定要完成父類數據的初始化。每個子類構造方法第一行默認有super();
7.final關鍵字:在實際開發時,有些方法的內容一旦寫定後,就不允許被改動。該關鍵字修飾方法,方法不能被重寫,
修飾類,類不能被繼承,修飾變量,變量不能改變成爲常量。
8.多態:同一個對象,在不同時刻表現出來的不同狀態。
前提:A:有繼承關係。
B:有方法重寫(非必要,很重要)
C:有父類引用指向子類對象。Fu f= new Zi ();
9.多態的成員訪問特點:A:成員變量:編譯看左邊,運行看左邊。
B:構造方法:子類構造默認訪問父類中的無參構造。
C:成員方法:編譯看左邊,運行看右邊(方法重寫)
D:靜態成員方法:編譯看左邊,運行看左邊(靜態內容和類相關,和對象無關)
exp:
10.抽象類:強制要求子類必須要重寫某些方法。抽象類成員:
成員方法:可以是變量,也可以是常量。
構造方法:存在,但不能實例化,只用於子類訪問父類數據的初始化。
成員方法:既可以是抽象,又可以是非抽象。
11.抽象類的使用:在類與類的創建時,發現類與類之間有共性的內容,可以提取出來,在父類中定義一個抽象方法,
讓子類繼承,這樣就可以通過該方法讓子類實現方法重寫。
12.接口:類接口代表着這個類自身功能的一種擴展
特點:A:定義接口用關鍵字interface 格式爲 interface 接口名{}
B:類實現接口用implements表示 格式爲 class 類名 implements 接口名{}
C:接口不能實例化,只能按照多態的方式,用其子類實例化。
D:接口的實現類要麼是抽象類,要麼重寫接口中的所有抽象方法。
13.多態的前提:A:有繼承或實現關係。
B:有方法重寫
C:有父類引用或父類接口引用指向子類或者實現類對象
14.多態的分類:具體類多態,接口類多態和抽象類多態。
15.接口的成員特點:A:成員變量:只能是常量。默認修飾:public static final
B:無構造方法
C:成員方法:只能是抽象方法。public abstract
16.類,接口之間的關係:類與類:繼承關係,只能單繼承,可以多重繼承。
類與接口:實現關係,可以單實現,也可以多實現。
接口與接口:繼承關係,可以單繼承,也可以多繼承。