子类中的变量在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关键字引用父类变量ch B()display()B类中的方法在子类和超类中打印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);
   }
}

main()类Demo中的方法中,创建了类B的对象obj。然后display()调用该方法。演示此代码段如下:

public class Demo {
   public static void main(String args[]) {
      B obj = new B('B', 'E');
      obj.display();
   }
}