これは非常に奇妙な質問ですので、ご容赦ください。
Java 仕様が、2 つのサブクラスのオーバーライド メソッドがそれぞれの同じメカニズムを介して解決されることを保証しているかどうかを知りたいです。言い換えれば、私が持っている場合
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())
ですか?