17
public interface Table<T> {

    @Overrride
    default boolean equals(Object other) {
        //do something and return true/false
    }
}

为什么上面的代码会出现“java: default method equals in interface Table overrides a member of java.lang.Object”的编译错误?难道我们不能使用接口默认方法覆盖hashCode和equals方法,大概我在同一个接口中有方法来确定实现这个接口的对象的相等性?

4

1 回答 1

17

不。具有实现的类总是胜过默认方法,因此具有默认值hashCodeequals永远不能被调用,因此是被禁止的。

于 2015-01-19T06:48:20.997 回答