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

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/weixin_43153854/article/details/102676289

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内存图
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_43153854/article/details/102676289