import static java.lang.System.*;
interface My
{
void show();
}
class Temp implements My
{
public void show()
{
out.println("inside over-ridden show method");
}
public static void main(String... s)
{
My m = new Temp();
m.show();
String ob = m.toString();
out.println(ob);
}
}
输出:
inside over-ridden show method
Temp@2a139a55
接口'My'从Object类获取toString()方法,并且它没有在Temp类中实现。那么当所有方法都应该是抽象的时,接口如何从Object类中获取一个body方法。
答案 0 :(得分:3)
界面'我的'从Object类获取toString()方法,它不在Temp类中实现。
除了实施My
之外,课程Temp
还会延伸Object
。当你写
class Temp implements My {
...
}
与写作相同
class Temp extends Object implements My {
...
}
这就是它从Object
获取所有方法的方式,包括Object.toString
方法的默认实现。
答案 1 :(得分:1)
它不是"界面"获取方法toString
。所有java类都固有地从Object继承,正如您所指出的那样具有toString
方法。当你写
My m = new Temp();
您正在创建一个Temp
对象,该对象具有toString
方法,因为它本身就是Object的子类。 m
只是My
类型的变量,它在上述行之后引用Temp
个对象。它实际上是Temp
对象,具有从Object类继承的toString
方法。