我可以对此有一些反馈吗
鉴于“new House(“x”)”发送了一个字符串,我预计“House(String name)”构造函数会调用 Building 超类构造函数“Building(String name)”。在这种情况下,答案将是“bn xh hn x”。但是答案是“bh hn x”(是的,它确实与该输出一起运行)。
问题 1. 除了调用 "new Building("string_value")" 之外,House 还会调用 "Building(String name)" 构造函数吗?(即除了 House 构造函数中的附加代码?2.为什么调用无参数 Building 构造函数,而不是重载 Building (String name) 构造函数?我正在寻找的是可能有许多 Building 构造函数和可能需要从子类调用特定的超级构造函数。如何确保调用哪个构造函数(给定两个或多个选项)?
包含代码以方便参考。
答案是“bh hn x”
class Building {
Building() {System.out.print("b ");}
Building(String name) {this(); System.out.print("bn "+name);}
}
public class House extends Building {
House() {System.out.print("h ");}
House(String name) { this();System.out.print("hn "+name);}
public static void main(String a[]) {
new House("x "); }
}
问候斯科特