隐式超级构造函数示例()对于默认构造函数是不可见的。必须定义一个显式构造函数。是因为我定义了一个私有构造函数,然后尝试继承其他类中的类?使用私有构造函数继承一个类
回答
这是因为我定义了一个私有构造函数,然后尝试继承其他类中的类?
是的。如果你的只有构造函数是私有的,那么你不能创建该类的子类,因为没有可访问的构造函数可以链接到 - 将嵌套类留在一边(在可访问性发生变化的地方)。
考虑让你的构造函数受到保护,如果你真的想要能够继承原始类。
+1你可以有嵌套的子类。您必须决定是否需要可以从其他类使用的构造函数,例如受保护的,或者你没有。 –
@PeterLawrey:IIRC在Java中,嵌套子类将无法访问封闭类的私有构造函数(与C#不同),但是*可能会*使外部类子类成为具有私有构造函数的嵌套类。 。如果由于其他原因合法。我不想在这里进入。 –
这在Java的'公共类A编译就好{ 私营A(){ } 静态类B扩展A { 私人B(){ } } 静态C级扩展B { 私人C( ){ } } } ' –
如果你想要子类,那么你需要从子类的构造函数中显式地调用超级构造函数,并且由于它是私有的,所以你不能调用它!因此,从被保护的子类创建超级类的构造函数至少可访问。
- 1. 私有构造函数和继承(Java)
- 2. 使用私有继承时继承基础构造函数的方法?
- 3. 从C++中的私有模板类继承构造函数
- 4. 为什么你不能从一个构造函数是私有的类继承?
- 5. 继承非构造函数
- 6. 构造函数和继承
- 7. Java继承 - 构造函数
- 8. Java构造函数继承?
- 9. 构造函数和继承?
- 10. 构造函数和继承
- 11. 构造函数继承
- 12. Java继承/构造函数
- 13. C#继承构造函数
- 14. 继承类和构造函数
- 15. 类的继承和构造函数
- 16. 继承类中的构造函数C++
- 17. 从超类继承构造函数?
- 18. 继承虚基类的构造函数
- 19. C++继承类的构造函数
- 20. Java:继承构造函数到子类
- 21. TypeScript类继承构造函数混淆
- 22. 从基类继承构造函数?
- 23. 通过定义默认私有构造函数使类不可继承
- 24. 私有变量和继承构造函数
- 25. 继承,超级构造函数和私有方法
- 26. 使类构造函数私有
- 27. 没有默认构造函数 - 继承
- 28. 用私有构造函数继承一个类?或者创建一个新的模块?
- 29. 具有不一致构造函数的多级别类继承
- 30. 在java中调用继承构造函数的构造函数
而你的代码是...? –
如果该类唯一的构造函数是声明为'private'的无参数构造函数,则不能有子类。 – afk5min
为什么你们投下这样的问题,如果这对你来说太简单了,那不适合其他人。 –