Java当有2个私有构造函数时,为什么继承不起作用?

时间:2017-12-01 14:16:03

标签: java inheritance

假设我有两个班级。

第一个名为" User1",第二个名为" User2"。

User2继承User1。

当我将User1的构造函数设为私有时,IDE会给出错误

  

" User1"中没有默认构造函数。

为什么?任何人都可以向我解释一下吗?

1 个答案:

答案 0 :(得分:2)

标记为 static的所有内容仅属于该类,例如static方法无法在sub class中继承因为它们属于声明它们的类。 由于每个constructor在创建其子类的对象期间由其子类调用,因此如果您将constructor标记为static,则subclass将无法访问其父类的构造函数,因为它标记为静态,因此仅属于class。这将违反 继承概念的全部目的,这就是为什么构造函数不能是静态的原因。

如果您询问的是private constructor答案是否无法扩展Parent类,如果它有私有构造函数 。您必须使构造函数可用于子类。在这种情况下,您需要具有受保护或公共或默认访问修饰符的默认构造函数。