情况就是这样:
public class Super implements Interface1 {}
public class Sub extends Super {}
我怎么能实现这个目标?
Interface1 listener = (Interface1) subClassObject;
作为subClassObject,作为param传递的Sub类的实例。这是抛出ClassCastException。 感谢
答案 0 :(得分:4)
这可以不投射:
interface MyInterface {}
class Super implements MyInterface {}
class Sub extends Super {}
public class Main {
public static void main(String args[]) {
MyInterface i = new Sub();
}
}
没有例外。
想象一下,该对象是作为参数传递的
这也完美无缺:
public class Main {
public static void main(String args[]) {
myMethod(new Sub());
}
public static void myMethod(Sub s) {
MyInterface i = s;
}
}