继承超类接口


这是

这种情况:

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;
    }
}

最新更新