MyInterface是一个接口,直接使用new关键字肯定要报错的,但是在方法里这用使用就不会报错,这是一种什么实现机制呢?
new MyInterface();
System.out.println(new MyInterface(){
});
接口不能被实例化,如:
----------------清单1----------------------
public interface Test {
public void doIt();
}
在测试类中语句:Test Tone = new Test();就是错的。
而如果写成:
-----------------清单2----------------------
Test Tone = new Test(){
public void doIt(){
System.out.print("--------");
}
};
就是可以的,因为在清单2中的代码实际上new了一个匿名内部类 ,而且这个匿名内部类 实现了Test接口 。
创建匿名类啊,大哥