В наследовании суперкласс создается при создании подкласса.В Composition объект создается, когда его хочет кодер.
Это наследование, когда создается дочерний класс, создается родительский объект, поскольку дочерний объект наследуется от родительского.
class Parent {
//Some code
}
class Child extends Parent{
//Some code
}
Это композиция, объект не создается при создании дочернего класса, вместо этого он создается всякий раз, когда это необходимо.
class Parent{
//Some code
}
class Child{
private Parent parent = new Parent();
//Some code
}
В этом случае родительский класс также создается при создании дочернего класса,Ниже приведен еще один пример композиции без создания объекта при создании дочернего класса
class Parent{
//Some code
}
class Child{
private Parent parent;
public Child()
{
}
public void createParent()
{
parent = new Parent();
}
}
Обратите внимание, что родительский объект не создается до вызова метода createParent.