Можно ли использовать композицию, когда оба класса абстрактные?
Например, у меня есть абстрактный класс Тело (от него я буду создавать конусы, пирамиды и т.д.) И есть Абстрактный класс Основание (то есть в основании конуса - круг, в основании пирамиды - многоугольник).
Как мне добавить класс основание в тело при помощи композиции. Я знаю, что создавать объекты абстрактного класса нельзя. Если есть способ, опишите пожалуйста. Если нет, объясните почему.
public abstract class Body {
protected Base base;
public void setBase(Base base) {
this.base = base;
}
public Base getBase() {
return base;
}
}
Примерный вариант для класса Тело. Наследуя его ваша фигура может получить основание. Как вариант можно еще сделать основание default или protected, в зависимости от потребностей.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей