【Java基础】super和 this

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

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

1. 在本类的成员方法中,访问本类的成员变量。
2. 在本类的成员方法中,访问本类的另一个成员方法。
3. 在本类的构造方法中,访问本类的另一个构造方法。


在第三种用法当中要注意:
A. this(...)调用也必须是构造方法的第一个语句,唯一一个。
B. super和this两种构造调用,不能同时使用。

public class Fu {

    int numFu=20;
    int num=11;
    public Fu() {
        System.out.println("父类无参构造");
    }
    public Fu( int num) {
        System.out.println("父类有参构造");
    }

    public  void  method(){
        System.out.println("父类的方法");
    }
}
===================
public class Zi extends  Fu{
    int numZi=40;
    int num=12;
    public Zi() {
        super(); //写生super()就不再赠送super()
    }

    @Override
    public void method() {
        super.method();
        System.out.println("子类完善父类方法");
    }

    public void methodZi() {
        System.out.println("父类成员变量为"+super.num);
        System.out.println("子类成员变量为"+this.num);
    }
}
==============================
public class demoThisSuper {
    public static void main(String[] args) {
        Zi one=new Zi();
        System.out.println(one.num);
        one.method();
        one.methodZi();
    }
}

  

原文地址:https://www.cnblogs.com/paulwinflo/p/12956854.html