一尘不染

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

java

我是Java编程语言的初学者,最近我研究了 构造函数 不能在Java中继承,有人可以解释 为什么 吗?


阅读 259

收藏
2020-09-09

共1个答案

一尘不染

简而言之,构造函数不能被继承,因为在子类中它具有​​不同的名称(子类的名称)。

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(); }
}
2020-09-09