Incompaitible types: Dog(Cat) can not be converted to Animal

242
05 марта 2018, 00:30

Здравствуйте! Ошибка в конце кода а точнее в двух местах: 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);

    }
}
Answer 1
public class Dog extends Animal {
  ...
}
public class Cat extends Animal {
  ...
}

Суть проблемы в том, что Ваши Dog и Cat не являются Animal. Если Вы унаследуете эти классы от Animal, то объекты этих типов можно будет использовать в коде, который ожидает тип Animal.

READ ALSO
Получение null-ячеек Apache POI

Получение null-ячеек Apache POI

Всем приветПри работе с итератором в Apache POI получаются только те ячейки в строке, которые не равны null

204
Вопрос по итераторам Java

Вопрос по итераторам Java

Объясните мне пожалуйста,почему когда я работаю с итератором и забываю проинициализировать сам итератор, то такой цикл будет продолжаться...

217
как узнать количество ссылок на объект в java

как узнать количество ссылок на объект в java

вопрос как можно получить количество ссылок на экземпляр объекта или хотя бы больше 1 ли их

140
Java. Вопрос по архитектуре сервера для игры

Java. Вопрос по архитектуре сервера для игры

Думаю над архитектурой сервера для игры и встал вопрос над тем, как обрабатывать подключения клиентовПротокол - tcp/ip

175