假设我有两个班级。
第一个名为" User1",第二个名为" User2"。
User2继承User1。
当我将User1的构造函数设为私有时,IDE会给出错误
" User1"中没有默认构造函数。
为什么?任何人都可以向我解释一下吗?
答案 0 :(得分:2)
标记为 static
的所有内容仅属于该类,例如static
方法无法在sub class
中继承因为它们属于声明它们的类。
由于每个constructor
在创建其子类的对象期间由其子类调用,因此如果您将constructor
标记为static
,则subclass
将无法访问其父类的构造函数,因为它标记为静态,因此仅属于class
。这将违反 继承概念的全部目的,这就是为什么构造函数不能是静态的原因。
如果您询问的是private
constructor
答案是否无法扩展Parent类,如果它有私有构造函数 。您必须使构造函数可用于子类。在这种情况下,您需要具有受保护或公共或默认访问修饰符的默认构造函数。