gpt4 book ai didi

java - 为什么调用构造函数的重写方法而不是他的类中的方法?

转载 作者:行者123 更新时间:2023-12-02 00:23:12 25 4
gpt4 key购买 nike

通过运行以下代码我得到了结果:

A类的方法
B 类的方法。

public class Test {

static class A {

public A() {
someMethod();
}

public void someMethod() {
System.out.println("method from class A");
}
}

static class B extends A {
public void someMethod() {
System.out.println("method from class B");
}
}

public static void main(String... args) {
new A();
new B();
}
}

结果的第一行很清楚,但第二行则不清楚。为什么类A的构造函数不调用类A中定义的方法,而是调用类B的重写方法?编译后,构造函数 A 中的代码是否会以某种方式复制到类 B 中,以便我们实际上从类 B 中调用我们的方法?

最佳答案

第二个对象的类型为 B,因此当在构造函数中调用方法 someMethod 时,它将采用该方法的最后一个方法声明,类型为 B

关于java - 为什么调用构造函数的重写方法而不是他的类中的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10568385/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com