package demo.oo;
//自己调试调试
class Fu {
int num;
Fu() {
num = 10; //父类num
System.out.println("A fu run");
}
Fu(int x) {
System.out.println("B fu run..." + num);
}
}
class Zi extends Fu {
int num;
Zi() {
//super(); //调用的就是父类中的空参数的构造函数。 隐含存在
System.out.println("C zi run " + num);
}
Zi(int x) {
this();
//super(x);
//super(); // 隐含存在
System.out.println("D zi run " + num);
}
}
class ConstructorSuper {
public static void main(String[] args) {
new Zi(6);
}
}
/*
同时子类构造函数中如果使用this调用了本类构造函数时,
那么super就没有了,因为super和this都只能定义第一行。所以只能有一个。
但是可以保证的是,子类中肯定会有其他的构造函数访问父类的构造函数(此例是调用父类无参的构造函数)
*/
this()和super()
这篇博客探讨了Java中构造函数的调用和`super`关键字的应用。通过一个示例,展示了如何在子类构造函数中调用父类的构造函数,以及`this`关键字如何用于实例化同一类的不同构造函数。博客强调了在子类构造函数的第一行必须有对父类构造函数的调用,无论是显式还是隐式的。

被折叠的 条评论
为什么被折叠?



