gpt4 book ai didi

java - 在 Java 中使用重载方法键入顺序

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:46:36 25 4
gpt4 key购买 nike

给定 Java 中同一个类的两个方法:

public void doSomething( Person person );
public void doSomething( Employee employee );

在哪里

Employee extends Person

如果我调用:

doSomething( employee )

我发现 doSomething( Person ) 被调用了。

我希望调用具有最接近匹配契约的重载,而不是最抽象的(这是我正在发现的)

谁能解释一下为什么?

最佳答案

使用最具体的适用重载 - 但该重载是在编译时根据 employee 变量的编译时类型确定的。

换句话说:

Employee employee = new Employee();
doSomething(employee); // Calls doSomething(Employee)

但是:

Person employee = new Employee();
doSomething(employee); // Calls doSomething(Person)

请注意,这不同于覆盖,后者是重要的目标对象的执行时间类型。

关于java - 在 Java 中使用重载方法键入顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1075256/

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