我有这个例子,我不明白为什么java允许使用没有实现它的接口来转换obj。
public interface Interface {
public void whoIam();
}
public class SuperClass {
}
public class SubClass extends SuperClass implements Interface {
public void whoIam() {
System.out.println("I M a SubClass");
}
public static void main(String[] args) {
SuperClass a = new SubClass();
Interface b = new SubClass();
Interface c = (Interface) new SuperClass();
c.whoIam();
}
下面这行不应该编译,因为SuperClass没有实现接口:
Interface c = (Interface) new SuperClass();
它将生成" java.lang.ClassCastException:"
所以,我认为编译器允许这一行是有原因的。
我想知道什么时候我们可以在没有实现它的情况下使用接口来构建obj。
Thxs