super关键字代表父类对象,其中主要用途如下:
- 在子类构造方法中调用父类的构造方法.
- 在子类方法中访问父类的属性或方法.
例子如下:
-
package com.sise.test; class Father { public Father() { System.out.println("father"); } public void myMethod() { System.out.println("father method"); } } class Son extends Father { public Son() { super();//调用父类的无参构造方法,如果不写,编译器会隐性补上,并且只能放在第一行 //如果父类没有提供默认构造方法,子类也没有指定需要调用父类的哪个构造方法,编译器会报错,因为编译器默认调用父类的默认构造方法,而父类中没有提供默认构造方法,所以报错. System.out.println("Son"); } public void myMethod() { super.myMethod(); System.out.println("son method"); } } public class SuperDemo { public static void main(String[] args) { Son son = new Son(); son.myMethod(); } }
运行结果如下::
father
Son
father method
son method