前言

我们知道子类能够改写父类的方法(例如叫:do),然后覆盖.从此,用子类调用do方法只能调那个被改写的do,如果我想用子类调用那个被覆盖的do怎么办呢?
OK,就要用super关键字

super

super关键字,能在子类中调用父类的属性,方法,和构造方法

  • super调用父类的构造方法
父类
1
2
3
4
public abstract class Test {
public Test() {//构造方法
}
}
子类
1
2
3
4
5
public class Test2 extends Test{
public Test2() {//构造方法
super();//调用父类构造方法
}
}

因为构造方法中没有参数,所以可以不写编译器会自动,调用父类的无参构造方法
(如果有就要写构造方法,并在括号中加上参数)

  • super调用父类属性
1
this.name = super.name;
  • 调用父类的方法
1
super.hello();

注意

java中
一个类只能有一个父类

子类不仅覆盖了父类的方法还会覆盖父类的属性

子类能使用父类的属性和方法,还能添加属性和方法,还能重写父类的属性和方法