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 次浏览

开启您的 职业

完成课程获得认证

开始
广告