類繼承和物件組合是復用的兩種最常用的技術。
一:繼承
繼承是is a 的關係,比如說student繼承person,則說明student is a person。繼承的優點是子類可以重寫父類的方法來方便地實現對父類的擴充套件。
繼承的缺點有以下幾點:
①:父類的內部細節對子類是可見的。
②:子類從父類繼承的方法在編譯時就確定下來了,所以無法在執行期間改變從父類繼承的方法的行為。
③:如果對父類的方法做了修改的話(比如增加了乙個引數),則子類的方法必須做出相應的修改。所以說子類與父類是一種高耦合,違背了物件導向思想。
二:組合
組合也就是設計類的時候把要組合的類的物件加入到該類中作為自己的成員變數。
組合的優點:
①:當前物件只能通過所包含的那個物件去呼叫其方法,所以所包含的物件的內部細節對當前物件時不可見的。
②:當前物件與包含的物件是乙個低耦合關係,如果修改包含物件的類中**不需要修改當前物件類的**。
③:當前物件可以在執行時動態的繫結所包含的物件。可以通過set方法給所包含物件賦值。
組合的缺點:①:容易產生過多的物件。②:為了能組合多個物件,必須仔細對介面進行定義。
由此可見,組合比繼承更具靈活性和穩定性,所以在設計的時候優先使用組合。只有當下列條件滿足時才考慮使用繼承:
繼承與組合的優缺點
原文 殘劍 類繼承和物件組合是復用的兩種最常用的技術。一 繼承 繼承是is a 的關係,比如說student繼承person,則說明student is a person。繼承的優點是子類可以重寫父類的方法來方便地實現對父類的擴充套件。繼承的缺點有以下幾點 父類的內部細節對子類是可見的。子類從父類繼...
繼承與組合的優缺點
類繼承和物件組合是復用的兩種最常用的技術。一 繼承 繼承是is a 的關係,比如說student繼承person,則說明student is a person。繼承的優點是子類可以重寫父類的方法來方便地實現對父類的擴充套件。繼承的缺點有以下幾點 父類的內部細節對子類是可見的。子類從父類繼承的方法在編...
繼承與組合的優缺點
類繼承和物件組合是復用的兩種最常用的技術。一 繼承 繼承是is a 的關係,比如說student繼承person,則說明student is a person。繼承的優點是子類可以重寫父類的方法來方便地實現對父類的擴充套件。繼承的缺點有以下幾點 父類的內部細節對子類是可見的。子類從父類繼承的方法在編...