Здравствуйте! Ошибка в конце кода а точнее в двух местах: list.add(a); list.add(c); В классе MyAnimalList имеется метод add! Но в классе AnimalTestDrive предлагается либо создать уже созданный метод add иначе ругается - " Dog(Cat) can not be converted to Anmal" Почему игнорируется мой метод add?
public class MyAnimalList {
private Animal[] animals = new Animal[5];
private int nextIndex = 0;
public void add(Animal a) {
if (nextIndex < animals.length) {
animals[nextIndex] = a;
System.out.println("Animal добавляем в ячейку " + nextIndex);
nextIndex++;
}
}
}
public class AnimalTestDrive {
public static void main(String[] args) {
MyAnimalList list = new MyAnimalList();
Dog a = new Dog();
Cat c = new Cat();
list.add(a);
list.add(c);
}
}
public class Dog extends Animal {
...
}
public class Cat extends Animal {
...
}
Суть проблемы в том, что Ваши Dog и Cat не являются Animal. Если Вы унаследуете эти классы от Animal, то объекты этих типов можно будет использовать в коде, который ожидает тип Animal.
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники