今天我们讨论了Overriding and Shadowing
Java,在其中一张幻灯片(我已将其附在下面)中,我们被告知要密切注意最后 3 行,并确保我们了解发生了什么。我不确定我是否这样做,所以我需要一些帮助或解释。我的理解是,由于从对象b
显式转换为对象,调用访问当前类的成员字段,在本例中将是 B 类的值为 6 的成员字段。但是当它必须调用被重写的方法时D 来自 B,编译器决定应该调用 D 的 f() 方法的实现,因为该对象最初是 D 对象(?)。我真的不确定我是否正确理解了这件事,所以我很感激您的反馈。B
D
b.i
i
f()
PS:既然 thesuperclass
和 thesubclass
都有一个具有相同名称和类型的变量(i
)但没有冲突,不是吗shadowing
?
开满天机
相关分类