1. interface TestA { String toString(); }
2. public class Test {
3. public static void main(String[] args) {
4. System.out.println(new TestA() {
5. public String toString() { return “test”; }
6. });
7. }
8. }
What is the result?
A. test
B. null
C. An exception is thrown at runtime.
D. Compilation fails because of an error in line 1.
E. Compilation fails because of an error in line 4.
F. Compilation fails because of an error in line 5.
Answer: A
疑惑:为什么 TestA可以 用 new 啊,不是说接口不可以new的吗?
------解决方案--------------------------------------------------------
new ANotFinalClass() {
public String toString() { return “test”; }
}
匿名子类
------解决方案--------------------------------------------------------
new TestA() {
public String toString() { return “test”; }
}
implementents TestA接口的匿名内部类 的一个实例。编译器会生成一个名称类似Test$1的类
------解决方案--------------------------------------------------------
------解决方案--------------------------------------------------------
http://blog.csdn.net/yakihappy/archive/2009/03/11/3979863.aspx
------解决方案--------------------------------------------------------
new TestA() {
public String toString() { return “test”; }
}
匿名内部类..顾名思义是没名字的..{}里的东西就是实现TestA接口的方法...
------解决方案--------------------------------------------------------
new TestA() {
public String toString() { return “test”; }
}
匿名内部类