Я пытаюсь создать настройку, в которой набор подклассов переопределяет суперкласс. Этот суперкласс содержит абстрактный метод - возвращаемый тип которого в идеале должен быть типом объекта, из которого был вызван этот метод, так что он эффективно ведет себя следующим образом:
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;
}
}
Спасибо за любую помощь.
edit: added расширяет SuperClass на SubClass, да