- Java code
class A{}class B extends A{ public static void main(String args[]) { if(new B() instanceof C) System.out.println("B是A的子类"); }}class C{}
instanceof目的就是判断
obj instanceof classname
obj引用是不是classname类型的。
可本例中,好象编译要出错,如果能指定,那这个操作符就失去了意义。
------解决方案--------------------
new B() instanceof C
你眼睛很好 呵呵
------解决方案--------------------
在这种情形下根本没意义,你自己明知道类型还去检查干什么。
------解决方案--------------------
new B() instanceof C
类B和类C根本没有什么关系
把C改为A就对了
------解决方案--------------------
使用方法:对象变量 instanceof 类名或接口名
例如:
- Java code
class A {}class B extends A {}class C extends A {}...A a = null;if (Math.random() > 0.5) { a = new B();} else { a = new C();}...if (a instanceof B) { B b = (B) a; //b.B特有的功能} else if (a instanceof C) { C c = (C) a; //c.C特有的功能}
------解决方案--------------------
instanceof 根据英文名字就很明显知道 是。。。的实例
------解决方案--------------------
------解决方案--------------------
Mark
------解决方案--------------------
子类instanceof父类 ture
父类instanceof子类 false