在查询类型信息时,以instanceof的形式(即以instanceof的形式或isinstance()的形式,他们产生相同的结果)与直接比较class对象有一个很重要的差别。instanceof保持了类型的概念,它指的时“你是这个类吗,或者你是这个类的派生类吗?”而如果用==比较实际的class对象,就没考虑继承----它或者是这个确切的类型,或者不是。
class shap{};
class circle extends shap{};
shap instanceof circle -----true
shap.equals(circle) ------false
circle==shap -----false
shap.isinstance(circle) ---true