在Java中,super
关键字主要有以下三种用法,用于在子类中访问父类的成员:
-
调用父类构造函数
在子类构造函数中使用
super()
或super(参数列表)
显式调用父类的构造函数,确保父类成员被正确初始化。例如:
$$ \text{public Child(String name) { super(name); }} $$若未显式调用,Java会自动在子类构造函数首行添加
super()
调用父类无参构造函数。 -
访问父类成员变量
通过
super.变量名
直接访问父类中定义的成员变量。例如:
$$ \text{int age = super.age;} $$此用法优先使用父类成员变量,若子类存在同名变量则使用子类变量。
-
调用父类成员方法
使用
super.方法名(参数列表)
调用父类中的方法。例如:
$$ \text{super.printMessage();} $$此用法适用于覆盖父类方法时,需通过
super
显式调用父类实现。
补充说明 :
-
super
不能与this
在构造函数中同时使用; -
覆盖父类方法时,
super
用于调用父类实现,而非重写。