【发布时间】:2012-01-29 05:28:14
【问题描述】:
创建子类时,
- 为什么我必须创建一个构造函数并在每个 ctor 中写入 super?
- 如果我的行为与超类相似,我不应该期望继承它们吗?
【问题讨论】:
-
你不必在每个构造函数中都写
super,这是必然的。假设超类有一个默认(公共无参数)构造函数。如果您在其中未指定构造函数,子类将隐式获得一个默认构造函数,该构造函数在编译时仅调用super();。您显式创建的任何构造函数都将隐式调用super();作为其第一行——除非在构造函数的第一行中显式调用超类中的一个重载构造函数(例如,super(myParameter);)。跨度>
标签: java inheritance constructor