1.什麼是繼承? 使一個類擁有另一個類全部公開的屬性與行為的一種機制。 2.繼承的目的 假如一個類擁有另一個類的全部行為與屬性,並且這些屬性與行為數量較大,同時為其他類所共用,可以將這個類定義為子類去繼承另一個類,實現代碼復用。 3.繼承的影響 子類擁有了父類中非private的方法與屬性。 4.繼 ...
1.什麼是繼承?
使一個類擁有另一個類全部公開的屬性與行為的一種機制。
2.繼承的目的
假如一個類擁有另一個類的全部行為與屬性,並且這些屬性與行為數量較大,同時為其他類所共用,可以將這個類定義為子類去繼承另一個類,實現代碼復用。
3.繼承的影響
子類擁有了父類中非private的方法與屬性。
4.繼承的限制
- 構造方法:任何一個類中都有一個預設的無參構造方法,一旦顯式地創建了有參構造方法,預設的無參構造方法就被清除。子類的無參與有參構造方法中預設調用父類的無參構造方法,如果父類中不存在無參構造方法,編譯無法通過。補充:抽象類中有構造方法,介面中沒有構造方法。先初始化成員變數,後調用構造方法。
- 單繼承:在java中一個類只能通過extends關鍵字繼承一個父類。
- 方法重寫:參考http://www.cnblogs.com/tonghun/p/7141790.html。
- 耦合度:子類繼承了父類,子類對父類存在較大的依賴,父類發生變化時對子類的影響較大。
5.使用條件
因為一個類只有一次繼承機會,而且繼承會增加耦合度,出於維護繼承機會與降低耦合度的考慮,只有在一個類與另一個類相同的方法較多時,才考慮使用繼承,否則可以考慮實現介面,或者採用設計模式,如裝飾者模式。
6.介面繼承
一個介面可以繼承多個介面,這樣就擁有其他介面的抽象方法,自身不需要實現這些繼承的抽象方法。