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

标签 java

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

最佳答案

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

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

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

相关文章:

java - 当我重新打开应用程序时,如何检查上一个 session 中的线程是否仍在运行?

java - 无法在 Android 中导入 com.google.cloud.speech.v1.SpeechGrpc

java - 开源线程池库

java - NoClassDefFoundError、proGuard 和补间引擎库

java - 在负载下收集 Java heapdump

java - @TransitionFrom 和@TransitionTo 应该如何使用

javascript - 选择窗口无法选择子窗口

JAVA - 跨应用认证

java - Android Studio Onbackpressed

java - 在 rampart 中不可能同时具有传输级安全性和消息级安全性吗?为什么?