java中,当子类重写父类的方法后,子类对象将无法访问父类被重写的方法,为了解决这一问题,在java中专门提供了一个super关键字用于访问父类的成员(成员变量、成员方法和构造方法)。
使用super关键字调用父类的成员变量和成员方法
方法:
super.成员变量
super.成员方法([参数1,参数2……])
注意:
- super不是引用类型,super中储存的不是内存地址。
- super代表的是当前子类对象中父类型特征。
- 子类和父类都有某个数据时,如果需要在子类中访问父类中的数据,需要使用super。
- super可以用在成员方法中,也可以用在构造方法中。
- super和this相同,都不能用在静态方法中。
使用super关键字调用父类的构造方法
方法:
super([参数1,参数2……])
注意:
- 通过super调用父类构造方法的代码必须位于子类构造方法的第一行,并且只能出现一次。
- 在子类的构造方法中一定会调用父类的某个构造方法,这时可以在子类的构造方法中通过super指定调用父类的哪个构造方法,如果没有指定,在实例化子类对象时,会自动调用父类无参的构造方法。
- 通过子类的构造方法去调用父类的构造方法,作用是给当前子类对象中的父类型特征赋值。
- super([参数1,参数2……])与this([参数1,参数2……])不能共存。