我是java编程语言的初学者,最近我学习了构造函数java中不能继承,谁能解释一下why?
我已经读过这个链接 https://stackoverflow.com/questions/4417797/why-is-inheriting-constructors-not-supported-by-all-of-the-existing-c-compiler of C++
简而言之,构造函数不能被继承,因为在子类中它具有不同的名称(子类的名称)。
class A {
A();
}
class B extends A{
B();
}
你只能做:
B b = new B(); // and not new A()
相反,方法是用“同名”继承的并且可以使用。
至于原因:
继承构造函数没有多大意义,因为 A 类的构造函数意味着创建 A 类型的对象,而 B 类的构造函数意味着创建 B 类的对象。
你仍然可以use不过,A 的构造函数位于 B 的实现中:
class B extends A{
B() { super(); }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)