Java 中子類的變數隱藏超類中的變數
有時,子類中的變數可能會隱藏超類中的變數。這種情況,可以使用 Java 中的 super 關鍵字引用父類變數。
具體演示這一情況的程式如下
示例
class A { char ch; } class B extends A { char ch; B(char val1, char val2) { super.ch = val1; ch = val2; } void display() { System.out.println("In Superclass, ch = " + super.ch); System.out.println("In subclass, ch = " + ch); } } public class Demo { public static void main(String args[]) { B obj = new B('B', 'E'); obj.display(); } }
輸出
In Superclass, ch = B In subclass, ch = E
現在我們來理解以上程式。
類 A 包含資料成員 ch。類 B 使用 extends 關鍵字派生自類 A。它還包含資料成員 ch 和建構函式 B()。
在子類 (B) 中的 ch 變數隱藏了超類 (A) 中的 ch 變數。因此,可以使用 super 關鍵字在建構函式 B() 中引用父類變數 ch。類 B 中的 display() 方法列印了子類和超類中的 ch 的值。演示這一情況的程式碼片段如下
class A { char ch; } class B extends A { char ch; B(char val1, char val2) { super.ch = val1; ch = val2; } void display() { System.out.println("In Superclass, ch = " + super.ch); System.out.println("In subclass, ch = " + ch); } }
在類 Demo 中的 main() 方法中,建立了類 B 的一個物件 obj。然後呼叫 display() 方法。演示這一情況的程式碼片段如下
public class Demo { public static void main(String args[]) { B obj = new B('B', 'E'); obj.display(); } }
廣告