super():代表父类对象,调用父类的构造方法,如果在子类的构造函数中调用该函数则必须放在第一行,该方法会将父类的变量与方法记载到子类开辟的堆内存中。
public class Father {
private int id;
public Father()
{
}
public Father(int id) {
this.id = id;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
}
public class son extends Father {
public son()
{
super();//调用父类的无参构造方法
}
public son(int id)
{
super(id);//调用父类的有残构造方法
}
}
如果父类没有无参构造方法导致子类调用不到相应的构造方法
this():指代本类对象,用于调用本类构造方法和属性还有普通方法,如果在本类找不到就去父类中找
注意:this和super不能在静态方法中使用(因为静态方法是随着类的加载而加载,此时还没有对象,而this和super指本类和父类)