【发布时间】:2016-06-30 05:14:58
【问题描述】:
我阅读了this 的问题。答案是即使在 Java 8 中(我们可以在接口中拥有默认方法),我们也不能拥有 默认构造函数。它说这没有意义。
有人可以解释为什么它没有任何意义,或者是什么原因不支持 Java 8 中的默认构造函数?
【问题讨论】:
-
为什么要能够实例化一个接口?
-
构造函数通常设置接口没有的成员变量。那么这个默认构造函数通常会做什么呢?此外,一个类可以实现多个接口 - 那么您的类将继承哪个默认构造函数?
-
即使不是那个接口,它也可以被具体的子对象继承,就像抽象类的构造函数一样。
-
抽象类可以有状态,接口没有——默认方法只定义一种算法,但不能存储除局部变量以外的任何状态——构造函数是确保状态的强制性入口点对接口无用的对象(“无状态”)。
-
试着用接口构造函数解释你想解决什么样的问题。然后我们可以告诉你构造函数不能解决你的问题。
标签: java interface java-8 default-constructor default-method