【问题标题】:Java 8 default method interface override Object equals method [duplicate]Java 8默认方法接口覆盖对象等于方法[重复]
【发布时间】:2015-03-17 03:22:22
【问题描述】:
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方法吗,想必我在同一个接口中有方法来判断实现这个接口的对象是否相等?

【问题讨论】:

    标签: java java-8 default-method


    【解决方案1】:

    没有。具有实现的类总是优先于默认方法,因此永远不能调用默认的 hashCodeequals,因此是被禁止的。

    【讨论】:

    • 不仅实现战胜了默认方法。 任何声明在非interface 类中(即在超类层次结构中)获胜,即使它被声明为abstract
    猜你喜欢
    • 2015-11-27
    • 1970-01-01
    • 1970-01-01
    • 2015-08-20
    • 2019-04-02
    • 2018-01-28
    • 2014-07-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多