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