【发布时间】:2015-07-10 01:44:33
【问题描述】:
在实现类的可比较接口时,我们是否覆盖了 compareTo 方法?
如果是,谁最初定义了我们覆盖它的 compareTo 方法?
我的猜测是,在我们覆盖它之前没有其他实现的意义上,我们并没有覆盖它,而是只添加@override,因为我们正在实现一个接口。无论如何,今天我被具体询问了这个问题,并且不确定。
【问题讨论】:
-
Comparable接口定义了你需要实现的合约,其中包括compareTo方法。@Override注释是一个编译时检查,以确保您的意图(您认为您正在覆盖的方法)符合现实(可以覆盖什么)。例如,如果你不小心调用了方法compareto,你会得到两个错误,一个是因为不符合接口的约定要求,一个是因为编译器在类层次结构中找不到命名的方法 -
你的问题不清楚!你想知道是谁设计了 API 吗?或者@override 有什么用?
-
通过添加@override,我们是否覆盖了 compareTo 的默认实现? Object(父)类中是否有这样的默认实现?
-
没有。使用 @Override 注释在某种程度上是可选的(尽管推荐)。真正重要的是你的方法的实现。
标签: java