表示的实例不同

  • this表示当前实例,可以访问当前类中的属性
  • super就用于访问从父类继承来的属性,并且不能单独使用
    说的透彻一点this是找自己,super是找爸爸

    子类继承父类后重写了父类的方法,this访问本类中的方法(重写后),super访问父类中的方法(被重写的方法)
public class Son extends Father{
    int id = 1;
    @Override
    public void show(){
        super.show(); // 调用父类的方法
    }
    public void print(){
        sysou(this.id);// 输出本类中的属性
        sysou(super.id); // 输出父类中的属性
    }
}

访问的成员不同

  • this可以访问本类以及父类中继承的非private的方法属性
  • super访问从父类中继承的非private方法属性

使用方式不同

  • this可以单独使用
  • super不可以单独使用必须用(super.属性或方法)显示的方式使用

针对构造器中

  • 可以使用super(形参列表)调用父类中的属性,且必须声明子类构造器中的首行
  • this(形参列表)调用本类中的属性
  • this(形参列表)和super(形参列表)在构造器中只能二选一
最后修改:2022 年 01 月 21 日
如果觉得我的文章对你有用,请随意赞赏