Я пытаюсь переопределить метод, возвращающий тип как список в подклассе, как показано ниже, из-за проблемы с генериками я не могу это сделать в своем подклассе. Я не могу изменить свой код суперкласса, так как я могу решить проблему? любой может направить меня ... большое спасибо заранее.Как переопределить общий тип возвращаемого списка в java
Супер-классы, которые не могут быть обновление:
public class Animal {
private String legs;
}
public class TestSuper {
public List<Animal> addAnimals() {
return animals;
}
}
Суб классы:
public class Dog extends Animal {
private String sound;
}
public class TestSub extends TestSuper {
public List<Dog> addAnimals() { --> I need to override this method but want return type as List of dogs
return null;
}
}
Вы можете переопределить тип возвращаемого значения только с помощью типа, совместимого с назначением. Однако дженерики не ковариантны. 'Список' не является подтипом 'List '. См. [Эту тему] (http://stackoverflow.com/questions/14694852/can-overridden-methods-differ-in-return-type). –