2010-07-02 33 views
1

我已經提取了繼承和構圖之間的以下區別。我想知道延遲創建後端對象的意思是什麼?請找到下面的區別。繼承和構圖的區別

構圖允許您延遲創建後端對象,直到(並且除非)需要它們,並且在前端對象的整個生命週期中動態地更改後端對象。有了繼承,你得到的超類的形象在你的子類對象的圖像,一旦創建了子類,它在整個子類的壽命仍然是子類對象的一部分

回答

1

它的意思是,對象你的類封裝不需要被創建,直到有人實際調用使用該對象的方法。

7

在繼承中,超類是在創建子類時創建的。 在構圖中,對象在編碼器需要時創建。

這是繼承,當創建Child類時,會創建父類,因爲子類是從父類繼承的。

class Parent { 

    //Some code 
} 

class Child extends Parent{ 

    //Some code 
} 

這是組成,在創建子類時,不創建對象,而是被創建時,它是需要。

class Parent{ 

    //Some code 
} 

class Child{ 

    private Parent parent = new Parent(); 
    //Some code 
} 

在這種情況下,在創建Child類時也會創建Parent類。下面是在創建子類時

class Parent{ 

    //Some code 
} 

class Child{ 

    private Parent parent; 

    public Child() 
    { 
    } 
    public void createParent() 
    { 
     parent = new Parent(); 
    } 
} 

注意如何不創建父,直到呼叫到createParent提出創建成分沒有物體的另一個例子。

1

這也意味着父母的封裝沒有被破壞。子類將父類的數據公開給子類,從而破壞了封裝。組合允許對象封裝持久化,並且兩個對象可以繼續單獨管理,以便更改一個類的數據不會影響其他類數據。