давайте предположим, что у меня есть этот родительский класс
public abstract class Parent
{
private String name;
private String surname;
public Parent(String name, String surname)
{
this.name=name;
this.surname=surname;
}
и давайте предположим, что у меня есть много таких дочерних классов, и у каждого из них есть свои собственные атрибуты, которые можно добавить к своим родительским классам
public class Child extends Parent
{
private String favColor;
public Child(String name,String surname,String favColor)
{
super(name,surname);
this.favColor=favColor;
}
public getFavColor()
{
return this.favColor
}
Теперь я нахожусь в этой ситуации
Parent parent = new Child(name,surname,favColor);
и я хочу вызвать метод getFavColor () для родительского объекта, как это
parent.getFavColor();
это работает ? Я думаю, нет, так как я могу вызвать такой метод для такого объекта? я думал об объявлении абстрактных методов получения дочерних атрибутов в суперклассе, но это не очень похоже на принцип открытия / закрытия, потому что в будущем, когда я захочу добавить больше дочерних классов, мне придется объявлять каждый получатели дочерних атрибутов в суперклассе, который не должен знать о своих детях.
большое спасибо:)