📄 variableoverridedemo.java
字号:
//【例4-15】 成员变量的覆盖(隐藏)与super的使用
//程序清单4-15: VariableOverrideDemo.java
package e4_15;
public class VariableOverrideDemo {
public static void main(String args[]) {
A obja;
B objb = new B();
obja = objb;// obja是objb的上转型对象
// 给父类的成员变量a赋值
objb.setA("若子类执行继承父类的操作,则使用继承自父类的变量。");
// 上转型对象始终访问父类成员变量
System.out.println("obja.a = " + obja.a);
// 子类的同名变量a隐藏了父类的变量a
System.out.println("objb.a = " + objb.a);
// 给父类的成员变量a赋值
objb.setAOfB("若子类执行自己定义的操作时,则使用自己定义的变量。");
// 子类的同名变量a隐藏了父类的变量a
System.out.println("objb.a = " + objb.a);
System.out.println(objb.getAOfA());
// 子类的同名变量a隐藏了父类的变量a
System.out.println("objb.b = " + objb.b);
objb.getBOfA();
}
}
class A {// 类A
String a;
int b = 100;
public String getA() { return a; }
public void setA(String a) { this.a = a; }
}
class B extends A {// 类B继承类A
String a;// 覆盖(隐藏)父类同名变量a,类型可相同
double b = 1000;// 覆盖(隐藏)父类同名变量b,类型可不同
public String getAOfB() { return a; }
public void setAOfB(String a) { this.a = a; }
public String getAOfA() {// 用super访问被隐藏的父类中的成员变量a
return "super.a = " + super.a;
}
public void getBOfA() {// 用super访问被隐藏的父类中的成员变量b
System.out.println("super.b = " + super.b);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -