interface Hierarchy {

}

class Sub1 implements Hierarchy {

}

public class Ob {
    public static void main(String[] args) {
        Hierarchy hie = new Hierarchy(){};//not getting error line 11
        Hierarchy hie1 = new Hierarchy();//while creating like this error line 12
    }
}


hie对象创建完美,但hie1没有创建引发以下错误


  Hierarchy is abstract cannot be instantiated


请告诉我,如果我将{}放在第11行中会发生什么,实际上是什么,为什么当我放入{}时它不会引发错误。

最佳答案

new运算符(例如Hierarchy hie = new Hierarchy(){};)之后添加一个块会创建一个实现该接口的匿名类,并返回该接口的一个实例。由于您的Hierarchy接口为空,因此您无需执行任何操作。但是,如果定义了任何方法,则必须在该块中实现它们。

07-28 12:06