0

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

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

interface TestI
{}
4

3 回答 3

1

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

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

于 2013-10-24T20:03:25.400 回答
0

您希望它给出什么错误?

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

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

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

于 2013-10-24T20:22:25.103 回答
0

ti 是一个对象,对象具有列表功能 -

参考:对象

于 2013-10-24T20:03:17.303 回答