泛型方法重写的疑问
代码背景
先定义继承体系:
class Animal { }
class Dog extends Animal {}
class Cat extends Animal {}
抽象父类:
abstract class AbstractClass {
abstract <T extends Animal> T createFromList(List<Object> cells);
abstract <T extends Animal> T createFromObj(Object cells);
}
子类SubClass继承AbstractClass后,重写方法出现了不同编译结果:
现象1:重写createFromObj返回Dog可编译(带警告)
@Override
Dog createFromObj(Object cells) {...}
现象2:重写createFromList返回Dog且参数为List<Object>触发编译错误
错误提示:
'createFromList(List