我是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/