nwpu013269 2011-02-15 12:16
浏览 291
已采纳

new关键字用在一个接口前面是怎么回事

MyInterface是一个接口,直接使用new关键字肯定要报错的,但是在方法里这用使用就不会报错,这是一种什么实现机制呢?

new MyInterface();

System.out.println(new MyInterface(){

});

  • 写回答

2条回答 默认 最新

  • jep1983 2011-02-15 12:40
    关注

    接口不能被实例化,如:

    ----------------清单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接口 。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?