Kik*_*kou 5 java inheritance interface
我有这个例子,我不明白为什么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();
}
Run Code Online (Sandbox Code Playgroud)
下面的这一行不应该编译,因为SuperClass没有实现接口:
Interface c = (Interface) new SuperClass();
Run Code Online (Sandbox Code Playgroud)
它将生成"java.lang.ClassCastException:"
所以,我认为有一个原因,编译器允许这一行.
我想知道什么时候我们可以在没有实现它的情况下使用接口转换obj.
Thxs