instanceof就是判斷object這個執行個體是不是屬于class的。result = object instanceof class。如果是利用多态來建立的,fu f = new zi();res = f instanceof fu; res = f instanceof zi; 都是true。具體的看下面,這裡是寫給自己看的。
下面是摘錄自百度百科:http://baike.baidu.com/link?url=imOQ8d9FETB1fssv7m6TiwSQtp1LoFq5DbgPnQHiMdrBZUBX2sIjJrfGja-zXKzgkqYia9iDCXMkxkRTARrMnK。
instanceof是Java、php的一個二進制操作符(運算符),和==,>,<是同一類東西。由于它是由字母組成的,是以也是Java的保留關鍵字。它的作用是判斷其左邊對象是否為其右邊類的執行個體,傳回boolean類型的資料。可以用來判斷繼承中的子類的執行個體是否為父類的實作。相當于c#中的is操作符。java中的instanceof運算符是用來在運作時指出對象是否是特定類的一個執行個體。instanceof通過傳回一個布爾值來指出,這個對象是否是這個特定類或者是它的子類的一個執行個體。
用法:
result = object instanceof class
參數:
Result:布爾類型。
Object:必選項。任意對象表達式。
Class:必選項。任意已定義的對象類。
說明:
如果 object 是 class 的一個執行個體,則 instanceof 運算符傳回 true。如果 object 不是指定類的一個執行個體,或者 object 是 null,則傳回 false。
例子如下:
package com.instanceoftest;
interface A{}
class B implements A{
}
class C extends B {
}
class instanceoftest {
public static void main(String[] args){
A a=null;
B b=null;
boolean res;
System.out.println("instanceoftest test case 1: ------------------");
res = a instanceof A;
System.out.println("a instanceof A: " + res);
res = b instanceof B;
System.out.println("b instanceof B: " + res);
System.out.println("/ninstanceoftest test case 2: ------------------");
a=new B();
b=new B();
res = a instanceof A;
System.out.println("a instanceof A: " + res);
res = a instanceof B;
System.out.println("a instanceof B: " + res);
res = b instanceof A;
System.out.println("b instanceof A: " + res);
res = b instanceof B;
System.out.println("b instanceof B: " + res);
System.out.println("/ninstanceoftest test case 3: ------------------");
B b2=(C)new C();
res = b2 instanceof A;
System.out.println("b2 instanceof A: " + res);
res = b2 instanceof B;
System.out.println("b2 instanceof B: " + res);
res = b2 instanceof C;
System.out.println("b2 instanceof C: " + res);
}
}
/*
result:
instanceoftest test case 1: ------------------
a instanceof A: false
b instanceof B: false
instanceoftest test case 2: ------------------
a instanceof A: true
a instanceof B: true
b instanceof A: true
b instanceof B: true
instanceoftest test case 3: ------------------
b2 instanceof A: true
b2 instanceof B: true
b2 instanceof C: true