这是
这种情况:
public class Super implements Interface1 {}
public class Sub extends Super {}
我怎样才能做到这一点?
Interface1 listener = (Interface1) subClassObject;
是 subClassObject 作为参数传递的 Sub 类的实例。这抛出了一个 ClassCastException。谢谢
这无需强制转换即可工作:
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;
}
}