java繼承和組合

2021-09-25 04:34:41 字數 1141 閱讀 6826

有了繼承之後,同樣要考慮資料的儲存問題,物件的資料該如何訪問在子類中利用繼承的可訪問性呼叫長輩的方法,用長輩自己的方法操作長輩類自己物件中的私有屬性.

super(引數列表)

引數列表,是可以為0個或多個的

呼叫父類構造,且super(引數列表)只能寫在子類構造的第一條語句

super()呼叫的是父類的午餐構造,如果不寫,系統會自動給添上

super.

用來呼叫父類的方法或屬性

前提是父類允許子類呼叫(即父類對子類開放訪問性)

做繼承是為了復用長輩中的內容(屬性和方法)

即,在子類中使用長輩中的內容(屬性和方法)

所以繼承的優點:可以使用長輩中的內容

缺點:1.增加了類和類之間的複雜關係

2.如果繼承的層次越多

子類中可訪問的內容就越多

但子類並不都需要

組合的方式有兩種

方式一 : 在類中放置屬性/組合屬性

public

class

xx}

方式二 : 在類的方法中組合資料

public

class

yy}

什麼時候使用組合

現用現組合

組合是has a的關係 (has a有乙個)

如:方式一 : xx類中有乙個test物件

方式二 : yy類中的method方法中有乙個test物件

繼承是is a的關係(is a是乙個)

如:student is a commonperson學生是乙個普通人

public class student extends commonperson
teacher is a commonperson老師是乙個普通人

public  class teacher extends commonperson
用繼承

用組合

java 繼承和組合

1.is a 是乙個 的關係是用繼承來表述 2.has a 有乙個 的關係是用組合來表述 3.組合語法 組合技術通常用於想在新類中使用現有累的功能而非它的介面的情況下。即在新類中放入某個類的物件,讓其實現所需要的功能,但是新類的使用者看到的只是為新類所定義的介面,而非嵌入類物件的介面。其實組合在編碼...

Java繼承和組合的區別

1 組合 has a 關係可以顯式地獲得被包含類 繼承中稱為父類 的物件,而繼承 is a 則是隱式地獲得父類的物件,被包含類和父類對應,而組合外部類和子類對應。2 組合關係在執行期決定,而繼承關係在編譯期就已經決定了。3 組合是在組合類和被包含類之間的一種松耦合關係,而繼承則是父類和子類之間的一種...

java 組合優於繼承

組合和繼承,都能實現對類的擴充套件。區別如下表所示 組合 繼承has a關係 is a關係 執行期決定 編譯期決定 不破壞封裝,整體和區域性松耦合 破壞封裝,子類依賴父類 支援擴充套件,隨意增加組合類 只能繼承乙個父類,必須包含所有方法,增加系統複雜性 動態選擇組合類方法 復用父類方法 下面通過乙個...