interface Printable {}
class BlackInk {}
public class Main {
public static void main(String args[]) {
Printable printable = null;
BlackInk blackInk = new BlackInk();
printable = (Printable)blackInk;
}
}
如果前面的代码编译并运行,结果是 ClassCastException at printable = (Printable)blackInk;
。但是,如果将 Printable 更改为一个类,它不会编译,因为 blackInk 不能强制转换为 Printable。为什么当 Printable 是接口时它会编译?