JAVA中super关键字和this关键字的用法

super关键字
super关键字的用法有三种:
1.在子类的成员方法中,访问父类的成员变量。
2.在子类的成员方法中,访问父类的成员方法。
3.在子类的构造方法中,访问父类的构造方法。

public class Zi extends Fu {
     

    int num = 20;

    public Zi() {
     
        super(); //访问父类构造器
    }

    public void methodZi(){
     
        System.out.println(super.num);  //访问父类成员变量
    }

    public void method() {
     
        super.method();  //访问父类成员方法
        System.out.println("子类方法");
    }
}

this关键字
super关键字用来访问父类内容,this关键字用来访问本类内容。用法也有三种:

1.在本类的成员方法中,访问本类的成员变量。(当方法的局部变量和类的成员变量重名时,根据“就近原则”,优先使用局部变量)
2.在本类的成员方法中,访问本类的另一个成员方法。
3.在本类的构造方法中,访问本类的另一个构造方法。
在第三种用法当中要注意:
A. this(…)调用也必须是构造方法的第一个语句,唯一一个。
B. super和this俩种构造调用,不能同时使用。

public class Zi extends Fu {
     

    int num = 20;

    public Zi() {
     
        this(123); //本类的无参构造,调用本类的有参构造
        //this(1,2); //错误写法
    }

    public Zi(int n) {
     
    this(1,2);
    }

    public Zi(int n,int m) {
     

    }

    public void showNum() {
     
        int num = 10;
        System.out.println(num); //局部变量
        System.out.println(this.num); //本类中的成员变量
        System.out.println(super.num); //父类当中的成员变量
    }

    public void  methodA() {
     
        System.out.println("AAA");
    }

    public void methodB() {
     
        this.methodA();
        System.out.println("BBB");
    }
}

this和super内存图
JAVA中super关键字和this关键字的用法_第1张图片

你可能感兴趣的:(java)