我想我错过了一些东西,或者某些东西对我来说没有点击。我正在读一本关于 java 的书,我刚刚了解了 super()。当用于获取构造函数时,它从一个超类中获取构造函数,对吗?如果你想上两个超类怎么办?
我的大脑中有些东西不正确,我希望这个问题能帮助我把这些碎片拼凑起来。
我想我错过了一些东西,或者某些东西对我来说没有点击。我正在读一本关于 java 的书,我刚刚了解了 super()。当用于获取构造函数时,它从一个超类中获取构造函数,对吗?如果你想上两个超类怎么办?
我的大脑中有些东西不正确,我希望这个问题能帮助我把这些碎片拼凑起来。
你不能上两层。你只能决定打电话给你的父母。然后该类负责依次调用其父类。
请注意,所有构造函数(除了 中的根构造函数Object
)都调用一个超级构造函数。如果您没有明确指定它,或者正如@PaulBellora 添加的那样,第一条语句是this()
对您的类的另一个构造函数的调用,编译器会在每个构造函数中插入一个super()
调用作为第一条语句。
因为一个类只能继承1个类,它的父类只能继承1个类,它只能去它上面的那个,它会调用自己父类的构造函数。
class GrandParent
{
GrandParent()
{
}
}
class Parent extends GrandParent
{
Parent() {
super(); //calls GrandParent()
}
}
class Child extends Parent
{
Child() {
super(); //calls Parent()
}
}