我想知道 JVM 在内部如何区分方法重载和方法覆盖。
最佳答案
JVM 只处理方法覆盖。通过在派生类中添加具有相同签名的方法来覆盖方法(唯一允许的区别是返回类型,允许更具体)。签名对方法的名称、参数类型和返回类型进行编码。
方法重载 意味着具有多个具有相同“简单名称”但不同签名的方法。在编译时,javac
编译器根据参数的类型选择一个同名方法,并将其签名放在编译后的 .class
文件中。已编译 Java 字节码中的方法调用必须指定被调用方的签名。
关于java - JVM内部是如何区分方法重载和方法重写的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30473610/