【发布时间】:2012-11-26 09:28:20
【问题描述】:
如果你定义一个像下面这样的接口
interface I1{
}
在任何代码部分你都可以这样写
I1 i1;
i1.equals(null);
那么equals方法从何而来,接口是否也扩展了超类Object?如果是这样,接口如何扩展一个类?
假设让接口扩展超类 Object ,那么如果你明白为什么像 Set 这样的集合接口定义了 equals() 和 hashCode() 方法?所有类都扩展了 Object 类,因此如果您在 Object 类中存在的接口中定义任何抽象方法,那么实现该接口的人无需实现这些方法。就像下面的代码
interface I1{
String toString();
}
class A implements I1{
}
这里的类 A 不需要实现方法 toString() ,因为它存在于 Object 类中。 那么在集合接口中定义这些方法的目的是什么,因为它们不能强制实现类来实现这些方法。
【问题讨论】:
标签: java