Java实例变量不能在子类中覆盖。Java继承不能那样工作。
在您的示例中,没有隐藏(或覆盖或重载)方法。
虽然隐藏了实例变量。在类中
child
,a
hide的声明隐藏a
in 的声明parent
,并且该类a
中的所有引用均引用而不是。child``child.a``parent.a
为了更清楚地说明这一点,请尝试运行以下命令:
public static void main(String args[]) throws IOException { child c1 = new child(); parent p1 = c1; System.out.println("p1.a is " + p1.a); System.out.println("c1.a is " + c1.a); System.out.println("p1 == c1 is " + (p1 == c1));}它应该输出:
p1.a is 10 c1.a is 11 p1 == c1 is true
这表明存在一个对象,其中有两个不同的字段称为
a…,并且如果访问允许,您可以同时拥有两个值。
最后,您应该学习遵循标准的Java标识符约定。班级名称应始终以大写字母开头。



