我们可以创建接口的对象吗?

interface TestA {

    String toString();

}


public class Test {

    public static void main(String[] args) {

        System.out.println(new TestA() {

            public String toString() {

                return "test";

            }

        });

    }

}

结果是什么?


A.测试

B.空

C.运行时抛出异常。

D.由于行1中的错误,

编译失败。E.由于行4中的错误,

编译失败。F.由于行5中的错误,编译失败。


这个问题的答案是什么?为什么?关于这个问题,我还有一个疑问。在第4行中,我们正在创建A的对象。是否可以创建接口的对象?


料青山看我应如是
浏览 894回答 3
3回答

扬帆大鱼

您在这里看到的是一个匿名内部类:给定以下界面:interface Inter {    public String getString();}您可以创建类似其实例的内容,如下所示:Inter instance = new Inter() {    @Override    public String getString() {       return "HI";     }   };现在,您具有定义的接口的实例。但是,您应该注意,实际上已经定义了一个实现接口并同时实例化该类的类。

阿波罗的战车

test应该是输出。这是一个匿名内部类的例子。这是Comparator接口使用的非常常见的模式,用于模拟闭包。
打开App,查看更多内容
随时随地看视频慕课网APP