Java关于构造器里面的this与super做了个随手笔记:
一个类的一个构造器如果想要调用本类的构造器用this();
一个类的一个构造器如果想要调用父类的构造器用super();
package Demo1;
public class Base {
public int a;
Base(){
System.out.println("执行了父类默认的构造器!");
}
Base(int a){
this.a=a;
System.out.println("执行了父类的带参构造器"+"a="+a);
}
}
package Demo1;
public class Drived extends Base {
public int i;
Drived(){
System.out.println("执行了子类的默认构造器!");
}
Drived(int i){
super(2);
//this();
this.i=i;
System.out.println("执行了子类的带参构造器"+"i="+i);
}
}
package Demo1;
public class Test {
public static void main(String[] args) {
Drived d=new Drived(1);
}
}
结果:
执行了父类的带参构造器a=2
执行了子类的带参构造器i=1
注意的是this与super必须放在构造器的第一行。