我知道从超类重写方法不过是runtime
多态而已。
Oracle文档说@Override
注释使用@Retention(value=SOURCE)
。这意味着@Override
注释将在我们编译代码时删除。
因此,我的问题是runtime
多态实际上如何工作。它在编译时需要做任何事情吗?此处实际上会发生什么?任何帮助表示赞赏。
答案 0 :(得分:1)
Override是一个注释,如果将其添加到不是覆盖的方法中,它将在编译阶段失败。它在编译阶段后没有任何用处,因此没有保留策略。多态性在运行时发生,并且与覆盖批注无关。