gpt4 book ai didi

java - 从孙类调用父类构造函数,调用父类或祖父类构造函数?

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:41:46 24 4
gpt4 key购买 nike

当使用二级子类的父类(super class)构造函数时,它会将参数传递给祖父构造函数还是直接父构造函数?

//top class
public First(type first){
varFirst = first;
}

//child of First
public Second(type second){
super(second); //calls First(second)
}

//child of Second
public Third(type third){
super(third); //calls First(third) or Second(third)?
}

最佳答案

super 调用直接父级的构造函数。所以 Third 中的 super 调用将调用 Second 的构造函数,后者又调用 First 的.如果您在构造函数中添加一些 print 语句,您自己就很容易看到这一点:

public class First {
public First(String first) {
System.out.println("in first");
}
}

public class Second extends First {
public Second(String second) {
super(second);
System.out.println("in second");
}
}

public class Third extends Second {
public Third(String third) {
super(third);
System.out.println("in third");
}

public static void main(String[] args) {
new Third("yay!");
}
}

你得到的输出:

in first
in second
in third

关于java - 从孙类调用父类构造函数,调用父类或祖父类构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36099344/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com