Java的this和super

2019-02-14  本文已影响102人  竹鼠不要中暑

this使用方法

this是指向对象本身的一个指针

super使用方法:

// 父类
public class Wolf {
    private int age;
    private double weight;
    protected String name = "wolf";

    public Wolf(int age) {
//        成员变量被方法参数屏蔽,使用this调用成员变量
        this.age = age;
    }

    public Wolf(int age, double weight) {
//        使用this(age)调用另一个构造方法,一般用来在参数多的构造方法内调用参数少的构造方法
        this(age);
        this.weight = weight;
    }

    public void eat() {
        System.out.println("Wolf: eat");
    }
}

// 子类
public class Dog extends Wolf {
    protected String name = "dog";

    public Dog(int age, double weight) {
        super(age, weight); // 调用父类的构造方法
    }

    public void eat() {
        System.out.println("Dog: eat");
    }

    public void eatTest() {
        super.eat(); // 调用与父子同名的父类成员方法
        this.eat();
    }

    public void printNameTest() {
        System.out.println("Father's name: " + super.name); // 调用父子同名的父类成员变量
        System.out.println("My's name: " + name);
    }
}

测试:

public class Test {
    public static void main(String[] args) {
        Dog dog = new Dog(3, 33);
        dog.eatTest();
        dog.printNameTest();
    }

运行结果:


上一篇下一篇

猜你喜欢

热点阅读