java - 为什么构造函数在java中不被继承?

标签 java oop inheritance constructor

我是java编程语言的初学者,最近研究构造函数在java中不能被继承,谁能解释一下为什么

我已经阅读了this link C++的

最佳答案

简单来说,构造函数不能被继承,因为在子类中它有不同的名称(子类的名称)。

class A {
   A();
}

class B extends A{
   B();
}

你只能这样做:

B b = new B();  // and not new A()

相反,方法以“同名”继承并且可以使用。

至于原因: 继承构造函数没有多大意义,因为A类的构造函数意味着创建一个A类型的对象,而B类的构造函数意味着创建一个B类的对象。

您仍然可以在 B 的实现中使用来自 A 的构造函数:

class B extends A{
   B() { super(); }
}

关于java - 为什么构造函数在java中不被继承?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18147768/

相关文章:

java - 以一个字符串作为输入,如果它完全由 Java 中的字符 A、T、C、G 组成,则返回有效

python - 覆盖字符串列表中属性的 getter 和 setter

java - super 和多问题

java - struts2从2.3.16更新到2.3.32(修复S2-045)后,JSP文件无法解析某些Object的字段

java - 当另一个组合框的值更改时,如何更改组合框的项目?

java - 为什么这个maven错误突然

c# - web.config inheritInChildApplications ="false"for configSections?

php - 使用 PHP OOP 从数据库中检索 mysql 信息

java - 这是什么设计模式——适配器、提供者、委托(delegate)、模板方法,还是……?

oop - 披萨建模