有时,子类中的变量可能会将变量隐藏在超类中。在这种情况下,可以使用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(); } }