我知道重写父类(super class)的方法只不过是运行时
多态性。
Oracle 文档说 @Override
注释使用 @Retention(value=SOURCE)
。这意味着 @Override
注释将在我们编译代码时被删除。
所以我的问题是,运行时多态性实际上是如何工作的。它必须在编译时执行任何操作吗?这里实际上发生了什么?任何帮助表示赞赏。
最佳答案
Override 是一个注释,如果将其添加到不是重写的方法中,则编译阶段将失败。它在编译阶段之后没有任何用处,因此保留策略。多态性发生在运行时并且独立于覆盖注释。
关于java - 如果覆盖的保留策略是源,运行时多态性如何工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52441488/