java接口如何能够对象类的方法

时间:2013-10-24 19:59:35

标签: java interface

我对接口有疑问。如果我在Eclipse中编写下面的代码片段,为什么在编写代码时不会出错,它是如何获取字符串类的所有方法的?

public class Test{
   public static void main(String args[]){
      TestI ti = null;
      ti.toString();
   }
}

interface TestI
{}

3 个答案:

答案 0 :(得分:1)

默认情况下,所有类都隐式地扩展Object类。 Object类有toString()方法。

但它在运行时将是java.lang.NullPointerException

答案 1 :(得分:0)

ti是一个Object和Object有列表函数 -

参考:Object

答案 2 :(得分:0)

您期望它给出什么错误?

接口是引用类型,因此在定义接口TestI时,可以将其用作数据类型。 (TestI ti = null)

接口隐式声明与Object类中声明的每个公共实例方法对应的公共抽象成员方法,除非该接口显式声明具有相同签名,相同返回类型和兼容throws子句的方法。 - 这意味着除非在接口中声明,否则可以调用Object类具有的任何方法。它不是从Object类“继承”。

请参阅http://docs.oracle.com/javase/specs/jls/se7/html/jls-9.html#jls-9.2