Java 泛型 - 重写抽象方法并具有子类的返回类型
2022-09-03 02:09:56
我正在尝试创建一个设置,其中一组子类覆盖一个超类。此超类包含一个抽象方法 - 理想情况下,该方法的返回类型将是从中调用此方法的对象的返回类型,因此它有效地表现如下:
public abstract class SuperClass{
public abstract SuperClass getSelf();
}
public class SubClass extends SuperClass{
@Override
public SubClass getSelf(){
return this;
}
}
我不确定这样的事情是否可行,因为我认为返回类型必须始终相同才能使覆盖工作 - 但是我一直在思考答案,如果存在,答案就在这条线上的某个地方......
public abstract class SuperClass{
public abstract <? extends SuperClass> getSelf();
}
public class SubClass extends SuperClass{
@Override
public SubClass getSelf(){
return this;
}
}
感谢您的任何帮助。
编辑:添加了将超类扩展到子类,duh