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