gpt4 book ai didi

Java 方法分派(dispatch)语义

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

这是一个非常奇怪的问题,所以请耐心等待。

我想知道 Java 规范是否保证两个子类中的重写方法通过每个子类中相同的机制来解析。换句话说,如果我有

public class Foo {
public int frob() {
return 7;
}
}

public class Bar extends Foo {
@Override
public int frob() {
return 8;
}
}

public class Baz extends Foo {
@Override
public int frob() {
return 9;
}
}

以及某处的方法:

public static int quux(Bar b) {
return b.frob();
}

我知道只调用 .frob()b ,调用quux((Bar)new Baz())有多安全? ?

最佳答案

quux((Bar)new Baz()) 甚至无法编译。 (无法从 Baz 转换为 Bar,因为 Baz IS-NOTBar)。

关于Java 方法分派(dispatch)语义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13656461/

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