Java 为什么只有抽象类可以有构造函数,而接口不能,而我可以通过匿名方法创建两者的obj

Java 为什么只有抽象类可以有构造函数,而接口不能,而我可以通过匿名方法创建两者的obj,java,interface,abstract-class,Java,Interface,Abstract Class,我在不同的平台上研究了接口不能有构造函数,而抽象类可以有构造函数。我们不能在接口中使用构造函数的一个原因是,类的所有非静态变量都可以初始化为构造函数,而在接口中,我们只能使用静态变量,这些变量也只需要在declrn时初始化。 任何其他可以证明的理由都需要分享。因为通过Annonymous类对象创建,我可以同时创建接口对象和抽象类对象。在创建Annonymous的主体时,我可以定义接口中的任何抽象方法。当您从接口new MyInterface(){…}创建对象时,编译器实际上创建了一个实现接口的匿

我在不同的平台上研究了接口不能有构造函数,而抽象类可以有构造函数。我们不能在接口中使用构造函数的一个原因是,类的所有非静态变量都可以初始化为构造函数,而在接口中,我们只能使用静态变量,这些变量也只需要在declrn时初始化。
任何其他可以证明的理由都需要分享。因为通过Annonymous类对象创建,我可以同时创建接口对象和抽象类对象。在创建Annonymous的主体时,我可以定义接口中的任何抽象方法。

当您从接口
new MyInterface(){…}
创建对象时,编译器实际上创建了一个实现接口的匿名类

接口不允许非静态成员,因此在没有任何可初始化的情况下使用构造函数是没有意义的。抽象类可以具有由构造函数初始化的非静态成员


阅读更多关于Hi cdalxndr的信息,实际上这就是重点,我们不能实例化接口,但我们可以通过匿名概念来实现。和抽象类类似,那么为什么抽象类有构造函数和接口呢cannot@Neeraj由于接口不允许有非静态成员,那么如果接口构造函数中没有要初始化的内容,那么接口构造函数又有什么意义呢?抽象类可以有非静态成员进行初始化。是的,这一点我同意,甚至在我的查询中也提到过。但我想知道的是,这是我们不能有构造函数的唯一原因,还是还有其他一些指针需要证明。@Neeraj如果存在至少一个接口没有构造函数的原因,那么就足够了。任何其他理由都是无关紧要的。