interface TestA {
String toString();
}
public class Test {
public static void main(String[] args) {
System.out.println(new TestA() {
public String toString() {
return "test";
}
});
}
}
以下是问题的答案:
A. test
B. null
C. 运行时会抛出异常。
D. 编译失败,因为第1行有一个错误。
E. 编译失败,因为第4行有一个错误。
F. 编译失败,因为第5行有一个错误。
这个问题的答案是C。调用a.test()会在运行时抛出NullPointerException。由于A没有实现任何方法,所以不能直接创建A的实例。但是,可以创建一个实现了A接口的类的实例,并将其赋值给A类型的变量。在这种情况下,变量包含对该类实例的引用,但只能访问A中定义的方法。
至于第二个问题,不能直接创建一个接口的实例。但是,可以通过创建一个实现该接口的类的实例来间接地创建接口的实例。
System.out.println(innerObject.getString());
,这就是为什么没有任何错误? - Koushik Shom Choudhury