class X {
interface A {}
interface B extends A {}
interface C extends B {}
void f(A a) {}
void test() {
C c = new C()
B b = (B) c;
f(b);
}
}
如果我像上面的
test()
函数一样做这样的事情:C c = new C()
B b = (B) c;
f(b);
f()
接受b
作为类型C
,因为C
和B
都继承自A
。我希望f()
接收b
作为类型B
而不是类型C
。
有没有办法强制进行向上转型?