本帖最后由 谭立文 于 2012-7-2 22:36 编辑
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());
}
|