?? 20d47c981a75001d1dddb6604daa6ad2
字號:
//【例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 + -