Java中this和super关键字的区别

this强调的是对象的本身,通过this调用的属性和方法都是它所属于的那个类中的属性和方法。属于对象和类间的关系
super在子类中调用父类的方法和属性。属于子类和父类两个类间的关系

//父类
public abstract class AbstractPerson {
    int age;
    public AbstractPerson(int age) {
        //调用本类中的构造方法
        this(age);
        //调用本类中的属性
        this.age = age;
        System.out.println("父类构造方法");
    }
    public AbstractPerson() {   
    }
}
//子类
public class Student extends AbstractPerson{
    public Student(int age) {
        //父类的构造方法
        super(age);
        //父类中的属性
        super.age=1;
        // TODO Auto-generated constructor stub
    }

this和super在调用构造方法的时候必须都要放在第一行,而且只能是在一个构造方法中调用另外一个构造方法才能使用。由于子类的构造方法必须要调用父类的构造方法,所以子类的构造方法中只能出现super()调用父类构造方法的情况

你可能感兴趣的:(java)