接口如何从Object类获取body方法?

时间:2014-05-08 17:16:27

标签: java

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方法。

2 个答案:

答案 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方法。