初學者不免有點混淆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();