【发布时间】:2018-07-02 16:52:45
【问题描述】:
我认为标题是不言自明的。 所以假设我有这个代码:
interface A { }
abstract class B { }
class C { }
C c = new C();
System.out.println(c instanceof A); //fine
System.out.println(c instanceof B); // compile error
在the question 的评论中我读到了这个:
编译器永远无法知道给定类型是否没有实现接口,因为潜在的子类可以实现它。
因此,如果 interface 有效,为什么它不适用于 abstract class ?它也应该由其他一些类扩展,因为它自己不能存在。有人可以澄清一下吗?
更新 编译消息:
错误:(22, 28) java: 不兼容的类型: C 不能转换为 B
【问题讨论】:
标签: java instanceof