首页 > Java > java教程 > 为什么Java不继承构造函数?

为什么Java不继承构造函数?

Mary-Kate Olsen
发布: 2024-12-05 03:26:10
原创
930 人浏览过

Why Doesn't Java Inherit Constructors?

Java 构造函数继承:揭开谜底

在 Java 中,类的构造函数不会被其子类继承。这种设计选择引发了一个长期存在的问题:为什么 Java 采取这种方法?

考虑以下类:

当子类 Son 继承自 Super 时,Java 要求构造函数在 Son 中显式声明,其参数与 Super 中的参数相同。这可能会导致代码重复,如下所示:

这种重复提示了一个问题:为什么 Java 禁止构造函数的继承?

答案在于这种行为的潜在后果遗产。如果构造函数是继承的,那么每个类最终都会从基类 Object 继承一个构造函数。这意味着每个类,无论其用途如何,都将有一个无参数构造函数。

这样的设计会产生歧义。例如,以下代码:

会留下问题,应该将哪些参数传递给构造函数。不同的类可能需要不同的参数,使得这种继承非常不切实际。

虽然在某些情况下传递构造函数(仅调用超类构造函数的构造函数)很有用,但 Java 明智地选择不将此作为默认行为。子类构造所需的不同参数需要在每个类中显式声明构造函数。

以上是为什么Java不继承构造函数?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板