继承与构成之间的区别

use*_*521 1 oop inheritance terminology composition object-composition

我已经提取了继承和组合之间的以下区别.我想知道后端对象的创建延迟是什么意思?请找到以下差异.

组合允许您延迟后端对象的创建,直到(并且除非)它们被需要,以及在前端对象的整个生命周期中动态地更改后端对象.通过继承,您可以在创建子类时立即在子类对象图像中获取超类的图像,并且在子类的整个生命周期中它仍然是子类对象的一部分

Chi*_*ghE 8

在继承中,在创建子类时创建超类.在Composition中,对象是在编码器想要的时候创建的.

这是继承,当创建Child类时,父类被创建,因为子类从父类继承.

class Parent {

    //Some code
}

class Child extends Parent{

    //Some code
}
Run Code Online (Sandbox Code Playgroud)

这是组合,在创建子类时不会创建对象,而是在需要时创建它.

class Parent{

    //Some code
}

class Child{

    private Parent parent = new Parent();
    //Some code
}
Run Code Online (Sandbox Code Playgroud)

在这种情况下,还会在创建Child类时创建Parent类.下面是在创建子类时没有创建对象的Composition的另一个示例

class Parent{

    //Some code
}

class Child{

    private Parent parent;

    public Child()
    {
    }
    public void createParent()
    {
         parent = new Parent();
    }
}
Run Code Online (Sandbox Code Playgroud)

请注意,在对createParent进行调用之前,不会创建父级.