instanceof 这个关键字的用法是:
变量名a instanceof 类名A
说的是 变量a是 A类型吗? 若是为 true
若 有如下代码
class A
{
}
class B extends A
{
}
A a = new B();
a instanceof B ???
答案是 true
在这里是有多态存在的,类A是B类的父类,即a是 B类型的上转型对象。
其实当你写 a instanceof B 时实际上是相当于
这样写.
if(a.getClass() == B.class) //a.getClass(),因为每个类在你定义时都是隐式的重写了getClass方法的所以a.getClass()返回的是B.class 即有多态存在
{
System.out.println(a.getClass());
} 作者: 金龙 时间: 2012-7-3 02:50
instanceof of 是判断某个对象是否从属于某个类的, 你那是对象从属于对象,当然错了。作者: 吴扬 时间: 2012-7-5 00:18
谢谢大家,明白了!我可能把instanceof和两个对象之间的比较方式弄混了!