java super关键字
在java中有很多关键字,我们需要掌握和理解这些关键字怎么使用,这样我们才可以写出更健壮和高效的程序,这篇文章主要来说一下java中的关键字super。super关键字有两种用途,分别是:
- 可以使用super关键字来访问父类的成员
如果你的子类重写了父类中的方法,你可以通过使用super关键字来回调父类中被重写的方法。你也可以使用super关键字来查询一个隐藏域。考虑下面这两个类,父类SuperClass和子类SubClass:
package com.java8.learn;
public class SuperClass {
public void printMethod(){
System.out.println("superClass printMethod");
}
}
package com.java8.learn;
public class SubClass extends SuperClass {
@Override
public void printMethod() {
super.printMethod();
System.out.println("subClass printMethod");
}
public static void main(String[] args){
SubClass subClass = new SubClass();
subClass.printMethod();
}
}
控制台输出结果:
superClass printMethod
subClass printMethod
从上面的程序运行结果可以看出,创建SubClass的对象并调用了该类中的printMethod方法,而该方法中又使用了super关键字调用了父类中的printMethod方法,所以最终的打印结果如上图所示。
- 可以使用super关键字来访问父类的构造方法
通过使用super关键字调用父类的构造方法必须在子类构造方法的第一行。可以是调用无参的super();也可以是调用父类有参数的构造方法super(parameter,list);
如果构造函数未显式调用超类构造函数,则Java编译器会自动插入对超类的无参数构造函数的调用。 如果超类没有无参数构造函数,则会出现编译时错误。
还没有评论,来说两句吧...