我想我错过了一些东西,或者某些东西没有点击给我。我正在读一本关于java的书,我刚学到了super()。当用于获取构造函数时,它从一个超类中获取构造函数,对吗?如果你想去两个超级课程怎么办呢?
有些东西并没有坐在我的大脑中,我希望这个问题可以帮助我将这些碎片放在一起。
答案 0 :(得分:7)
你不能升级两级。您只能决定打电话给您的父母。然后该类负责依次调用其父级。
请注意,所有构造函数(Object
中的根构造函数除外)都会调用超级构造函数。如果没有显式指定它,或者,正如@PaulBellora所添加的那样,第一个语句是对类的另一个构造函数的this()
调用,编译器会在每个语句中插入一个super()
调用作为第一个语句构造
答案 1 :(得分:1)
它只能转到它上面的那个,因为一个类只能从1个类继承,并且它的父类只能从1个类继承而且它将调用它自己的父类的构造函数。
class GrandParent
{
GrandParent()
{
}
}
class Parent extends GrandParent
{
Parent() {
super(); //calls GrandParent()
}
}
class Child extends Parent
{
Child() {
super(); //calls Parent()
}
}