- this()和super()不能同时出现,只有一出现,就是在构造函数的第一行
- 子类构造器中第一行默认是super(),一旦父类的构造器中没有无参的,那么必须显式调用父类的某个有参构造
- this()和super()为构造方法,作用是在JVM堆中构建出一个对象。因此避免多次创建对象,同一个方法内只能调用一次this()或super()。同时为了避免操作对象时对象还未构建成功,需要this()和super()的调用在第一行实现,以此来创建对象,防止异常。
- super,this关键字与super(),this()不是一回事,前者表示当前调用者的父类与其本身,后者是为了构造器相互调用
- super,this在内存之中是相同的含义,只不过是作用不同:super用于操作父类的成员变量和方法,this用于操作本类中的成员变量和方法,看如下代码
public class Test {
public static void main(String[] args) {
Fu z1 = new Zi1();
}
}
public class Fu {
public Fu(){
System.out.println("Fu类的无参构造方法");
}
}
public class Zi1 extends Fu {
public Zi1(){
System.out.println(this.toString());
System.out.println(super.toString());
System.out.println("Zi1类中的无参构造方法");
}
}