2010-07-02 88 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

这也意味着父母的封装没有被破坏。子类将父类的数据公开给子类,从而破坏了封装。组合允许对象封装持久化,并且两个对象可以继续单独管理,以便更改一个类的数据不会影响其他类数据。