【发布时间】:2018-04-05 11:19:28
【问题描述】:
考虑这个抽象类
abstract class AbstractBox {
abstract Object getContent();
}
现在我实现了 StringBox,但可能还有其他 Boxes 实现会返回任何类型的内容,从而阻止我将抽象方法的返回类型变得更加具体:
class StringBox extends AbstractBox {
@Override
Object getContent() {
return "";
}
}
除了让getContent() 声明它会返回一个Object 很明显它会返回一个String,我也可以这样做
class StringBox extends AbstractBox {
@Override
String getContent() {
return "";
}
}
因此清楚地说明getContent() 将返回什么,并且仍然覆盖抽象方法。
- 这个有名字吗?
- 它有什么缺点吗?
【问题讨论】:
-
使用泛型不是更好吗?然后使用
AbstractBox<String>,您就会知道它会产生什么类型。
标签: java abstract-class