Java中this和super关键字的用法

this

Java里this是指向对象本身的一个指针,用法大体上可分为:

  1. 普通的直接引用
  2. 用来区分成员变量和形参
    下面代码中Person构造方法和setAge方法中用来区分形参和成员变量
  3. 引用构造函数
    下面代码中重载了只有一个String类型形参的Person构造函数,该构造函数中用this调用本类中有String和int类型形参的构造函数。
public class Person {
    private String name;
    private int age;
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public Person(String name) {
        this(name, 10);
    }
}

super

super是指向父类的一个指针,这个父类指当前子类直接继承的父类,用法有:

  1. 引用父类的成员
  2. 用来区分子类和父类中同名的成员变量或方法
    下面例子中子类Tiger重写了父类Cat的act()方法,两个同名的方法用super来区分
  3. 引用父类构造函数
    子类的构造函数中,第一行使用super调用父类构造函数
public class Cat {
    private double age;
    private double weight;
    public Cat(double age, double weight) {
        this.age = age;
        this.weight = weight;
    }

    public void act() {
        System.out.println("喵喵叫");
    }
}

public class Tiger extends Cat {
    private double bodyLong;

    public Tiger(double age, double weight, double bodyLong) {
        super(age, weight);
        this.bodyLong = bodyLong;
    }

    public void act() {
        System.out.println("虎啸");
    }

    public void invoke() {
        super.act();
        act();
    }
}

你可能感兴趣的:(Java中this和super关键字的用法)