这是一个非常奇怪的问题,所以请多多包涵。
我想知道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())
?