java - 创建类的 protected 构造函数的优点和缺点是什么

标签 java constructor protected

我有一个愚蠢的疑问,但我想听听一些关于它的意见。

我有一个父类(super class) (MySuperClass),然后,我有大约 70 个类继承自这个父类(super class)(Bean 类)。

这个父类(super class)的目的是使用反射实现“toString”方法,通过这种方式,我确保所有这 70 个类都具有 toString 方法。这 70 个类是 bean,最终目的是记录类信息,而不仅仅是类的实例。

但是,这不是我想讨论的,我想听听您对父类(super class)有一个 protected 构造函数有什么看法,这样做的好处和坏处,而不仅仅是针对这种特殊情况但对于您可以想象的其他情况或场景。

问候,

最佳答案

如果您的目标是确保 MySuperClass 永远不会通过 new MySuperClass() 直接实例化,只有它的子类是,那么声明类 摘要;见http://docs.oracle.com/javase/tutorial/java/IandI/abstract.html .这就是抽象类的真正意义所在。构造函数可以是 publicprotected,这并不重要。

-抽象类中让所有构造函数 protected 的原因是,如果您确实打算使用 new MySuperClass() 实例化类本身,但只希望它被 子类和它的包的其他成员实例化(例如“工厂”对象) .不过,这听起来不像您想要做的。

关于java - 创建类的 protected 构造函数的优点和缺点是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8619301/

相关文章:

java - 无法通过 Smack API 使用 openfire 服务器发送/接收消息

java - 无法从 Netbeans 7.4 启动 derby 数据库

Java - 使用条件在 super 方法中指定参数

c++ - C++17 中 protected 构造函数的规则改变了吗?

java - 在 Java/Android 中使用多个值生成 SHA 256 哈希

java - android JDBC mysql java 连接器应用程序 :preDexDebug

c++ - 为什么没有调用构造函数?

java - 从匿名内部类的构造函数中抛出异常

c++ - 虚函数触发 protected 变量的编译错误

c++ - 访问另一个子类中基类的 protected 成员