this与super

Posted lhztech

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了this与super相关的知识,希望对你有一定的参考价值。

this:

  代表当前对象的引用,谁来调用我,我就代表谁
super:

  代表当前对象父类的引用

this 和 super 的使用区别:

a:调用成员变量 

  this.成员变量  调用本类的成员变量,也可以调用父类的成员变量(如果子类没有父类的某 XX 成员变量,则 this.XX 成员变量是调用父类,若子类有,则 this.XX 成员变量调用的是子类的成员变量,就近原则)super.成员变量 调用父类的成员变量

b:调用构造方法
  this(...) 调用本类的构造方法
  super(...) 调用父类的构造方法
c:调用成员方法
  this.成员方法 调用本类的成员方法,也可以调用父类的方法(就近原则)
  super.成员方法 调用父类的成员方法

 

相关问题:子类中所有的构造方法默认都会访问父类中空参数的构造方法,为什么呢?

  因为子类会继承父类中的数据,可能还会使用父类的数据。所以,子类初始化之前,一定要先完成父类数据的初始化。其实:每一个构造方法的第一条语句默认都是:super() ,这个 super 在拥有父类的类的构造方法中是隐藏的。 Object 类最顶层的父类,需要从最顶层的 Object 类开始,往下一一层的执行构造方法。

 







以上是关于this与super的主要内容,如果未能解决你的问题,请参考以下文章

python super

mysql的所有权限

调用父类的三种方法

uper关键字 super

关于继承中的super()调用父类构造方法

(原)java 向上转型中,任何域的访问操作都是由编译器解析,不是多态