super()与this()的异同
1 相同:
- 都只能在构造函数中调用
代码会出错哦!
public class Main extends teacher{
public static void main(String[] args) {
//super();
}
public Main(){
super();
}
public static void a(){
this();//错,只能在构造函数中调用
}
public void b(){
super();//错,只能在构造函数中调用
}
}
class teacher {
}
- 都只能放在第一行,且this()和super()不能同时出现
下面代码会出错:
public class Main extends teacher{
public static void main(String[] args) {
//super();
}
public Main(){
this();
super();//出错,this()与super()不能同时出现,且this(),super()都必须在第一行
}
}
class teacher {
}
2 不同之处在于:this()是调用本类的构造函数,super()是调用父类的构造函数
子类调用父类构造函数的几种情况: