Java編程思想之複用類

1:爲了繼承,一般的規則是將所有的數據成員指定爲private,所有的方法指定爲public

2:當創建一個子類對象時,該對象隱式的包含一個父類對象的引用super

3:當有繼承時,構造器的初始化順序是先父類後子類,如果有有參數的構造方法,應當手動super(參數)調用父類的構造器。

4:複用一般有三種方式,一種是繼承,繼承不要多用,除非有父類引用指向子類對象的時候,組合是一種常用的構造新類的方式,組合常常是設計者想要使用現有類的功能,卻不提供接口。新類的用戶看到的是爲新類定義的接口。代理是繼承和組合的中庸之道,設計者想要提供父類的大多數接口,但是又不想讓子類對象可以直接操作,於是就有了在新類中包含一個父類對象(組合的表現),在內部讓父類對象來操作父類的方法,多了一箇中間層,可能子類也提供父類的接口,或者提供父類接口的子集。

5:父類引用指向子類對象是一種向上轉型,也是運行時多態的體現。

6:final關鍵字可用於修飾數據,方法和類,用於修飾數據時代表不可變的數據,用於修飾方法時代表繼承時不可被覆蓋的方法(雖然自己寫的方法總不想被覆蓋,但真的可能別人的想法比你的好慎重)修飾類的時候代表此類不能夠被繼承。private關鍵字隱式的包含了final。

7:存在繼承時類的加載:構造子類對象前,先加載父類的字節碼,於是就有了前面的已經提到的兩條初始化規則

a.類的成員變量會在方法調用前初始化(包括構造方法),靜態變量先按定義順序初始化,然後非靜態變量按定義順序初始化。

 b.static塊會在調用創建對象或者調用靜態變量前初始化。

 c.先初始化完所有靜態量,再初始化實例量。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章