第十七講
A)構造方法的重載:只需看參數即可。如果想在一個構造方法中調用另外一個構造方法,那么可以用this()的方式調用,this()括號中的參數表示目標構造方法的參數。this()必須要作為構造方法的第一條語句。
B)繼承:Java是單繼承的,意味著一個類只能繼承另一個類,繼承使用extends關鍵字。
C)當生成子類對象時,會默認先調用父類的不帶參數的構造方法,生成父類對象,再執行該子類的構造方法,生成子類對象。
D)如果子類的構造方法想調用調用父類的構造方法,可以用super()來顯式調用,這樣就不會尋找父類不帶參數的構造方法。與this()一樣,super()必須為構造方法中的第一條語句。
?
E)關于繼承的3點
1)父類有的,子類也有
2)父類沒有的,子類可以增加
3)父類有得,子類可以改變
?
F)關于繼承的注意事項
1)構造方法不能被繼承
2)方法和屬性可以被繼承
3)子類的構造方法隱式調用父類不帶參數的構造方法
4)當父類沒有不帶參數的構造方法,子類要用super()來調用父類的構造方法
?
G) 方法重寫:子類與父類的方法返回類型一樣,名稱一樣,參數一樣,這樣子類與父類方法構成了重寫關系。
H)方法重寫 與 方法重載 的關系:重載發生在同一個類內部,重寫發生在父類與子類之間。
I)子類的方法內可以用 super().方法 形式來調用父類的方法,且不必擺在方法的第一行。
J)在定義一個類時,如果沒有顯示指定該類的父類,那么該類就會繼承于java.lang.Object類。
K)多態:子類就是父類,男人是人,玫瑰是花,多態是指:父類型的引用可以指向子類型的對象。
?
L)Parent p = new Child();當使用多態方式調用方法時,首先檢查父類中是否有那個方法,如果沒有則編譯錯誤。因為p是父類型,父類型不一定有子類型的方法。
a)向上類型轉換(upcast):比如說Cat類型轉換為Animal類型,即子類轉換為父類型,不需要顯示指定。
b)向下類型轉換(downcast):比如Animal類型轉換為Cat類型,即父類型轉換為子類型,需要使用強制類型轉換,同時這個父類的引用需要指向該子類的對象。
?