Если у меня есть такие классы
class SuperType {}
class SubTypeOne extends SuperType {}
class SubTypeTwo extends SuperType {}
Я хочу создать такой интерфейс
interface TypeHandler {
public void handle(SuperType arg);
}
Но допустим, чтобы они были действительной реализацией
class SubTypeOneHandler implements TypeHandler {
public void handle(SubTypeOne arg) { }
}
Как вы можете видеть, используя подкласс типа аргумента, определенного в интерфейсе.
Я попытался переписать интерфейс, используя
interface TypeHandler {
public void handle(? extends SuperType arg);
}
Но не похоже, что это действительно Java.