super 关键字
关键字 super 是指该关键字所在类的父类。关于 super 关键字有两种用途:
- 调用父类的构造方法。
- 调用父类的方法。
调用父类的构造方法
调用父类构造方法的语法是:
super();//或者
super(parameters);
super() 调用父类的无参构造方法,super(parameters) 调用与参数相匹配的父类构造方法。这两个语句必须出现在子类构造方法的第一行,这是显示调用父类构造方法的唯一方式。
关于类的构造方法的调用可以看:构造方法链
调用父类的方法
语法如下:
super.methodName(aparameters);
可是父类可调用的方法都已经被继承下来,并不需要使用 super 关键字来调用。是的,大部分情况下我们调用父类的方法不需要使用 super。但是有些情况下我们无法直接调用,例如下面的代码:
......
public String toString() {
return super.toString() + "piggy";
}
......
再重写一个子类的方法时我们就常会使用到关键字 super 来调用父类的方法。是不是有种 this 的感觉。
不能用 super.super.methodName() 的语句来调用父类的父类的方法。这是一个语法错误!