【发布时间】:2019-04-17 14:58:51
【问题描述】:
如果我有这样的课程
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。
【问题讨论】:
-
你需要使接口通用。
-
@SLaks 哦,我明白了,
interface TypeHandler<T extends SuperType>?这是唯一的方法吗?
标签: java inheritance interface