在这里是有多态存在的,Object是java所有类的父类,即obj是 Demo类型的上转型对象。
其实当你写 obj instanceof Demo时实际上是相当于
这样写.
if(obj.getClass() == Demo.class) //obj.getClass(),因为每个类在你定义时都是隐式的重写了getClass方法的所有obj.getClass()返回的是Demo.class 即有多态存在
{
System.out.println(obj.getClass());
}
这个问题我以前也没有深究过,都是楼主遇到了我自己分析的,我还在找 instanceof的具体实现,这只是我的一种分析。 |