Java 接口是抽象的,无法安装

Java 接口是抽象的,无法安装,java,object,interface,abstract,Java,Object,Interface,Abstract,hie对象创建得非常完美,但是hie1没有创建 层次结构是抽象的,无法实例化 请告诉我如果我把{}放在第11行会发生什么,实际上会发生什么,为什么它不会抛出错误,当我把{}放在这两种情况下,您似乎都在试图创建一个实现接口的匿名类。但是你需要{}来做这件事。否则就不合法。请注意,您不能实例化接口在这两种情况下,您似乎都试图创建一个实现该接口的匿名类。但是你需要{}来做这件事。否则就不合法。请注意,您不能实例化一个接口第一行实例化了一个实现该接口的匿名类,如{}中包含的主体所示。这是合法的。由于接口

hie
对象创建得非常完美,但是
hie1
没有创建

层次结构是抽象的,无法实例化


请告诉我如果我把
{}
放在第11行会发生什么,实际上会发生什么,为什么它不会抛出错误,当我把
{}
放在这两种情况下,您似乎都在试图创建一个实现接口的匿名类。但是你需要
{}
来做这件事。否则就不合法。请注意,您不能实例化
接口

在这两种情况下,您似乎都试图创建一个实现该接口的匿名类。但是你需要
{}
来做这件事。否则就不合法。请注意,您不能实例化一个
接口

第一行实例化了一个实现该接口的匿名类,如{}中包含的主体所示。这是合法的。由于接口未声明任何方法,因此类的主体可以为空


第二行尝试直接实例化接口。这是不合法的。

第一行实例化了一个实现接口的匿名类,如{}中包含的主体所示。这是合法的。由于接口未声明任何方法,因此类的主体可以为空


第二行尝试直接实例化接口。这是不合法的。

在新代码末尾添加
{}
时,您所做的是创建一个。

因此,在第一种情况下,您正在实例化刚创建的类的对象(合法),而在第二种情况下,您正在尝试实例化没有类的对象(不合法)

当在新类末尾添加
{}
时,您所做的是创建一个对象。

因此,在第一种情况下,您正在实例化刚创建的类的对象(合法),而在第二种情况下,您正在尝试实例化没有类的对象(不合法)

new
操作符后添加块(例如,
hie=new Hierarchy(){};
)创建实现该接口的匿名类,并返回该接口的实例。由于您的
层次结构
接口是空的,因此不需要实现任何东西。但是,如果它定义了任何方法,则必须在该块中实现它们。

new
操作符(例如,
Hierarchy=new Hierarchy(){};
)之后添加一个块将创建一个实现该接口的匿名类,并返回该接口的实例。由于您的
层次结构
接口是空的,因此不需要实现任何东西。但是如果它定义了任何方法,那么您必须在该块中实现它们

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
    }
}
您必须在此处重写层次结构接口中的所有方法

  Hierarchy hie = new Hierarchy(){}; // this is new implementation for Hierarchy
因为层次结构不是一个类,所以没有构造函数。你不能初始化

您必须在此处重写层次结构接口中的所有方法

  Hierarchy hie = new Hierarchy(){}; // this is new implementation for Hierarchy

因为层次结构不是一个类,所以没有构造函数。您无法初始化类似的。虽然这涉及抽象类,但接口也是如此,类似于。虽然这是关于抽象类的,但对于接口也是如此,如果他做了你在第二句中所说的,他会做你在第一句中所说的。事实上,你只是在自相矛盾。如果他做了你在第二句中所说的,他就会做你在第一句中所说的。事实上,你只是在自相矛盾。