Java 关于接口中合同外使用的方法的澄清

Java 关于接口中合同外使用的方法的澄清,java,interface,Java,Interface,在 我现在想知道,尽管合同中没有规定,但如何使用to-toString方法?是因为它是公共的,所以任何声明为公共的方法都可以使用吗?toString()在对象类中定义。而每一个类都是一个对象。您将始终隐式扩展对象类。因此,您可以在实例上调用对象类的任何方法(hashCode()、toString()、wait()etc) 在Java中,每个类都继承自对象的契约,并且是该契约的一部分 因此,任何Java对象都有一个toString()方法。此外,由于toString()是非final,因此任何类都


我现在想知道,尽管合同中没有规定,但如何使用to-toString方法?是因为它是公共的,所以任何声明为公共的方法都可以使用吗?

toString()
对象
类中定义。而每一个类都是一个
对象
。您将始终隐式扩展对象类。因此,您可以在实例上调用对象类的任何方法(
hashCode()、toString()、wait()
etc)

在Java中,每个类都继承自
对象
的契约,并且是该契约的一部分


因此,任何Java对象都有一个
toString()
方法。此外,由于
toString()
是非
final
,因此任何类都可以选择提供自己的方法实现。

这是由java的超级类
对象继承的

以及以下内容

clone()
boolean equals(Object obj)
protected void  finalize()
Class<?>    getClass()
int hashCode()
void    notify()
void    notifyAll()
void    wait()
void    wait(long timeout)
void    wait(long timeout, int nanos)
clone()
布尔等于(对象obj)
受保护的void finalize()
类getClass()
int hashCode()
作废通知()
void notifyAll()
无效等待()
无效等待(长超时)
无效等待(长超时,整数纳秒)

接口为最低服务协议定义了一个合同-任何额外功能都可以随时添加,但它不会成为合同的一部分。

感谢您的回复!这些节省了我很多时间去寻找答案,我希望我现在可以投票,但看起来我还不能。所有的回复都很好,我觉得把其中一个评为最好的很内疚。