在Java中,子类可以用该属性的子类替换属性吗?

时间:2014-05-23 21:06:26

标签: java class inheritance

做这样的事情:

class Foo {
    Foo foo;
    ...
}

class Bar extends Foo {
    ...
}

class Baz extends Foo {
    Bar foo;
    ...
}

有效,但我不确定在课程Baz中,Bar foo是否实际上从父类Foo foo替换了Foo的实例。事实上,在Eclipse调试器中,似乎在Baz实例上,我们同时拥有Foo foo a Bar foo

如果我没有得到答案,我会稍微测试一下。我希望能够使用Foo foo“覆盖”Bar foo

1 个答案:

答案 0 :(得分:1)

不,你不是替换 foo类中的Foo字段,你只是声明一个新的 shadow 该声明(即仅在foo内使用Baz将引用Bar字段。

您始终只需将Bar个实例分配给Foo foo变量。