Day55 Java面向对象09 super关键字详解
1.super关键字是什么
- super关键字的作用是在子类中引用父类的内容
- 由于private修饰的内容由于无法被继承(实际为可以继承但无访问权限),所以super也同样无法调用private修饰的内容
2.super关键字用途
①调用父类构造方法
- 子类的结构建立在父类基础之上,子类构造方法必须调用父类的构造方法
- 使用super调用父类构造器时 super(); 必须写在第一行
- 父类构造器 super(); 和 所在类构造器 this(); 的调用都要求必须在第一行,无法同时调用
- 当父类中存在无参构造时,子类中会默认调用父类的无参构造,即super();不写也默认存在(与无参构造默认存在同理)
当父类中只有有参构造,没有无参构造时,父类的构造器必须手动显示调用
②调用父类的方法
当子类重写了父类方法,但还想执行父类的版本时,可以使用 spuer.方法名() 调用
③访问父类的成员变量
如果子类和父类有成员变量名相同,可以
用 super.变量名 来访问父类成员变量
用 ***this.变量名***来访问当前类的成员变量
例:
//父类
public class Country {
protected String name = "China";
}
//子类
public class Province extends Country {
protected String name = "省(未命名)";
public void nameTest(String name){
System.out.println(name); //name为实例化后传进来的参数
System.out.println(this.name); //this.name当前类中的name
System.out.println(super.name); //super.name为父类中的name
}
}
//启动器
public class Application {
public static void main(String[] args) {
Province province = new Province();
province.nameTest("辽宁省");
}
}
输出结果为:
辽宁省
省(未命名)
China
评论前必须登录!
注册