当一个子类继承一个超类时,子类和超类中定义的具有不同可访问性的字段之间的关系是什么,哪些字段属于子类,哪些不属于。有人可以解释下面的例子:
class Parent
{
private int partOne = 0;
public int partTwo = 1;
public void tellMe()
{
System.out.println(partOne);
System.out.println(partTwo);
}
}
class Child extends Parent
{
private int partOne = 2;
public int partTwo = 3;
public void main(String[] args)
{
Child child = new Child();
child.tellMe();
}
}
在 Eclipse 中 调试 时 , 观察 栈 中 的 变量child , 发现 Child 实例 有 4 个 字段 , 两个 由 其 类 定义 , 两个 由 其 父 类 , 我 很 困惑 . 是 否 是 我 的 时候 创建 了 父 实例 .创建一个子实例,IMP,我认为它只进入父类的构造函数,但我无法解释为什么子类不覆盖这两个字段,或者至少,我认为它应该覆盖具有公共可访问性的partTwo .请告诉我是什么原因,谢谢。