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();
   }
}

更新於: 30-Jul-2019

380 次瀏覽

開啟您的 職業

完成課程獲得認證

開始
廣告