云计算百科
云计算领域专业知识百科平台

Day55 Java面向对象09 super关键字详解

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

赞(0)
未经允许不得转载:网硕互联帮助中心 » Day55 Java面向对象09 super关键字详解
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!