java中,当子类重写父类的方法后,子类对象将无法访问父类被重写的方法,为了解决这一问题,在java中专门提供了一个super关键字用于访问父类的成员(成员变量、成员方法和构造方法)。

使用super关键字调用父类的成员变量和成员方法

方法:

super.成员变量
super.成员方法([参数1,参数2……])

注意:

  1. super不是引用类型,super中储存的不是内存地址。
  2. super代表的是当前子类对象中父类型特征。
  3. 子类和父类都有某个数据时,如果需要在子类中访问父类中的数据,需要使用super。
  4. super可以用在成员方法中,也可以用在构造方法中。
  5. super和this相同,都不能用在静态方法中。

使用super关键字调用父类的构造方法

方法:

super([参数1,参数2……])

注意:

  1. 通过super调用父类构造方法的代码必须位于子类构造方法的第一行,并且只能出现一次。
  2. 在子类的构造方法中一定会调用父类的某个构造方法,这时可以在子类的构造方法中通过super指定调用父类的哪个构造方法,如果没有指定,在实例化子类对象时,会自动调用父类无参的构造方法。
  3. 通过子类的构造方法去调用父类的构造方法,作用是给当前子类对象中的父类型特征赋值。
  4. super([参数1,参数2……])与this([参数1,参数2……])不能共存。
Last modification:September 6, 2017
If you think my article is useful to you, please feel free to appreciate