java - JVM内部是如何区分方法重载和方法重写的?

标签 java

我想知道 JVM 在内部如何区分方法重载和方法覆盖。

最佳答案

JVM 只处理方法覆盖。通过在派生类中添加具有相同签名的方法来覆盖方法(唯一允许的区别是返回类型,允许更具体)。签名对方法的名称、参数类型和返回类型进行编码。

方法重载 意味着具有多个具有相同“简单名称”但不同签名的方法。在编译时,javac 编译器根据参数的类型选择一个同名方法,并将其签名放在编译后的 .class 文件中。已编译 Java 字节码中的方法调用必须指定被调用方的签名。

关于java - JVM内部是如何区分方法重载和方法重写的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30473610/

相关文章:

使用对象数组时出现Java空指针异常

java - StartActivityForResult() 导致在返回 Intent 数据时强制关闭

java - jFieldId int 对对象无效

java - 我的 setNumber 没有按照我的预期发生相应变化

orm - J2SE 桌面应用程序 - JPA 数据库与集合?

java - 从 map 中选择一个随机键和值?

java - Eclipse如何生成代码?就像 Getter 和 Setter

java - 使用 dom4j 创建带 key 的 xpath

java - Eclipse插件开发: custom profiler (JDT )

java - 如何将 JAR 依赖项包含到 AAR 库中