java - 如果覆盖的保留策略是源,运行时多态性如何工作

标签 java annotations polymorphism overriding

我知道重写父类(super class)的方法只不过是运行时多态性。

Oracle 文档说 @Override 注释使用 @Retention(value=SOURCE)。这意味着 @Override 注释将在我们编译代码时被删除。

所以我的问题是,运行时多态性实际上是如何工作的。它必须在编译时执行任何操作吗?这里实际上发生了什么?任何帮助表示赞赏。

最佳答案

Override 是一个注释,如果将其添加到不是重写的方法中,则编译阶段将失败。它在编译阶段之后没有任何用处,因此保留策略。多态性发生在运行时并且独立于覆盖注释。

关于java - 如果覆盖的保留策略是源,运行时多态性如何工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52441488/

相关文章:

ios - 无法在 MapView、Swift 3 中设置自定义图钉图像

c++ - 如何从没有虚拟析构函数的类派生?

haskell - 什么时候泛型函数不是泛型的?

java - 如何从流中读取图像?

java - 选择在同一行上运行更新语句时不返回结果?

java - Spring @Value 将空字符串拆分为列表

java - 对数组使用 Nullness 注释

ruby-on-rails - 如何实现引用用户的多态关系?

java - Hibernate 显示标签大列表

java - 为 ref bean 创建属性,Spring