当子类重写父类的方法后,子类对象将无法访问父类被重写的方法, 为了解决这个问题,在Java中专门提供了一个super关键字用于访问父类的成员。例如访问父类的成员变量, 成员方法、 构造方法。
一、使用super 关键字调用父类的成员变量和成员方法, 具体格式如下:
super.成员变量
super.成员方法([参数1, 参数2...])
二、使用super关键字调用父类的构造方法。
super([参数1, 参数2...])
需要注意的是,通过super调用父类构造方法的代码必须位于子类构造方法的第一行, 并且只能出现一次, 在子类的构造方法中一定会调用父类的某个构造方法, 如果没有指定,在实例化类对象时,会自动调用父类无参的构造方法。
子类在实例化时默认调用父类的无参构造方法, 所以在定义一个类时,尽量在类中定义一个无参的构造方法,避免被继承时出现错误