定义
super是Java语言中的一个关键字
super关键字使用于子类访问父类的隐藏成员,它主要用于有继承关系的子类中,用它可以访问父类中被屏蔽的方法、构造方法、属性
使用super关键字可以在子类中引用父类被屏蔽的方法、构造方法、成员变量,这里的父类指的是与子类最接近的那个父类,如果这个类没有显示指定父类,则该的最接近的父类就是Object类。
super();//调用父类中的无参构造方法
super(参数1,参数2,...);//调用父类中有参构造方法
super.方法名(参数);//调用父类方法
super.父类中的成员变量;//使用父类中的成员变量
下面对每一种使用方式进行实战:
public class Base {
public Base(){
System.out.println("Base 无参构造方法");
}
}
public class Sub extends Base {
public Sub() {
super();
}
public static void main(String[] args) {
new Sub();
}
}
输出:
Base 无参构造方法
public class Base {
public Base(String name){
System.out.println("Base name="+name);
}
}
public class Sub extends Base {
public Sub() {
super("name");
}
public static void main(String[] args) {
new Sub();
}
}
输出:
Base name=name
public class Base {
public void baseTest(String name){
System.out.println(name);
}
}
public class Sub extends Base {
public static void main(String[] args) {
Sub sub=new Sub();
sub.subTest();
}
private void subTest(){
//调用子类调用父类中的方法
super.baseTest("Java后端技术栈");
}
}
输出:
Java后端技术栈
public class Base {
public String name="Java 后端技术栈";
}
public class Sub extends Base {
public static void main(String[] args) {
Sub sub=new Sub();
sub.subTest();
}
private void subTest(){
//使用父类中的name
System.out.println(super.name);
}
}
输出:
Java后端技术栈