Sul*_*972 1 java oop inheritance
我有以下代码,但我不明白为什么当我运行它打印"b"前打印"h hn x".为什么"b"获得,因为在所有我不是父类印刷Building在所有当我执行House().
class Building {
Building() {
System.out.print("b ");
}
Building(String name) {
this();
System.out.println("bn " + name);
}
}
public class House extends Building {
House() {
System.out.println("h ");
}
House(String name) {
this();
System.out.println("hn " + name);
}
public static void main(String[] args) {
new House("x ");
}
}
Run Code Online (Sandbox Code Playgroud)
超类的零参数构造函数由其子类的构造函数自动隐式调用.
更一般地说,为
class B extends A
Run Code Online (Sandbox Code Playgroud)
构造函数
public B()
{
//Your code
}
Run Code Online (Sandbox Code Playgroud)
其实看起来像
public B()
{
super(); //Call the superclass constructor
//Your code
}
Run Code Online (Sandbox Code Playgroud)
您可以通过显式调用其他一些超类构造函数来覆盖此行为.请注意,如果无法对构造函数进行隐式调用(如果您的no-arg构造函数不存在),那么您将看到错误.
| 归档时间: |
|
| 查看次数: |
87 次 |
| 最近记录: |