为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

料青山看我应如是 2019-11-26 15:18:30
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的对象。是否可以创建接口的对象?
查看完整描述

3 回答

?
扬帆大鱼

TA贡献1799条经验 获得超9个赞

您在这里看到的是一个匿名内部类:


给定以下界面:


interface Inter {

    public String getString();

}

您可以创建类似其实例的内容,如下所示:


Inter instance = new Inter() {

    @Override

    public String getString() { 

      return "HI"; 

    } 

  };

现在,您具有定义的接口的实例。但是,您应该注意,实际上已经定义了一个实现接口并同时实例化该类的类。


查看完整回答
反对 回复 2019-11-26
?
阿波罗的战车

TA贡献1862条经验 获得超6个赞

test应该是输出。这是一个匿名内部类的例子。

这是Comparator接口使用的非常常见的模式,用于模拟闭包。


查看完整回答
反对 回复 2019-11-26
  • 3 回答
  • 0 关注
  • 888 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信