繁体   English   中英

接口内部的toString,hashcode和equals方法

[英]toString,hashcode and equals method inside interface

根据我的理解toString()/ hashcode,下面的示例运行时没有任何错误,有人可以解释一下它的工作原理吗,因为接口不包含任何toString()/ hashcode / equals方法声明,编译器将如何解析方法调用? / equals或Object类方法将默认在接口内部声明? 如果不对,请纠正我

接口int1 {public void show(); }

class inttest implements int1
{

    public void show() 
    {
        System.out.println("inttest.show()");
    }

    @Override
    public String toString()
    {
        return "tostring called";
    }
}

public class MainClass1
{
    public static void main(String[] args) {
        int1 i=new inttest();
        System.out.println(i.toString());

    }
}

任何接口都具有Object类的所有公共方法(它从超级接口继承它们,或者,如果尚未显式声明它们,则隐式声明它们)。

这是有道理的,因为任何接口的任何实现类都必须是Object类的(直接或间接)子类,因此将继承所有Object方法的实现。

9.2。 界面成员

如果接口没有直接的超接口,则该接口隐式声明带有签名s的公共抽象成员方法m,返回类型r,并引发与每个带有签名s的公共实例方法m,返回类型r和throws子句t对应的子句t在Object中声明,除非接口显式声明了具有相同签名,相同返回类型和兼容throws子句的抽象方法。

随着所有对象的扩展, ObjectObject具有toString()您正在调用该方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM