初学者不免有点混淆java中instanceof和getClass()的做用, 下面就来一一讲解。java
父类A:app
class A { }
子类B:
class B extends A { }构造对象
Object o1 = new A();
Object o2 = new B();
一、o1 instanceof A => true
二、o1 instanceof B => false
三、o2 instanceof A => true // <================ HERE
四、o2 instanceof B => true
分析==>this
用法:
英文:result = object instanceof classspa
中文:结果 = 某个实例对象 instanceof 某个类名.net
java 中的instanceof 运算符是用来在运行时指出对象是不是特定类的一个实例。instanceof经过返回一个布尔值来指出,这个对象是不是这个特定类或者是它的子类的一个实例。code
一、o1.getClass().equals(A.class) => true
二、o1.getClass().equals(B.class) => false
三、o2.getClass().equals(A.class) => false // <===============HERE
四、o2.getClass().equals(B.class) => true
/**
* Returns the runtime class of this Object
*/
public final native Class<?> getClass();