如何通过接口看到Object类的方法?

时间:2010-03-09 11:52:45

标签: java

interface A {

    void hi();  
}

class AImpl implements A {

 public void hi() {

        System.out.println("hi");
    }

    public void to() {
        System.out.println("Test");
    }
}    

public class InterfaceTest {
    public static void main(String[] args) {

        A a = new AImpl();
        a.hi();
        System.out.println(a.hashCode());
        //a.to();
    }
}

这里接口A与Object类没有继承关系,但Object类的所有方法都可以通过接口访问。 为什么呢?

1 个答案:

答案 0 :(得分:8)

来自Java Language Specification section 9.2

  

界面的成员是:

     
      
  • 在界面中声明的那些成员。
  •   
  • 那些成员继承自直接超级接口。
  •   
  • 如果接口没有直接的超接口,则接口隐式声明public   抽象成员方法m   签名s,返回类型r和throws   条款t对应每个公众   具有签名s的实例方法m,   返回类型r和throws子句t   在Object中声明,除非是方法   具有相同的签名,相同的回报   type和一个兼容的throws子句   由...明确声明   接口。这是一个编译时错误   如果接口明确声明   在m为的情况下的这种方法m   声明在Object中是最终的。
  •   

第三个项目符号是重要的 - 基本上不扩展任何其他接口的接口会自动继承hashCode等。