1. 程式人生 > >java :instanceof用法

java :instanceof用法

interface println false bsp 繼承 attr mask csdn 技術分享

Java中的instanceof是用來判斷某個實例是不是某個類的實例。
例如:A instanceof B (A為某個實例,B為某個類名)
如果A為B的實例,則:(A instanceof B)==true 反之==false
代碼舉例:

package JavaKEYWORDS;

class Bird{//父類

}
class BigBird extends Bird{//Bird的子類

}
class LittleBird extends Bird implements BirdFly{//Bird的子類加上BirdFly接口

}
interface BirdFly{

}
public class JavaKWinstanceof {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        JavaKWinstanceof myThis=new JavaKWinstanceof();
        Bird myBird=new Bird();
        BigBird myBigBird=new BigBird();
        LittleBird myLittleBird=new LittleBird();
        //打印各實例與類之間的關系
        prt(myThis instanceof JavaKWinstanceof);//打印結果:YES   
        prt(myBird instanceof Bird);//打印結果:YES  
        prt(myBigBird instanceof Bird);//打印結果:YES     子類實例出的對象也是父類的實例
        prt(myBird instanceof BigBird);//打印結果:NO      父類實例出的對象不是子類的實例
        prt(myLittleBird instanceof Bird);//打印結果:YES  子類加上其它接口後實例出的對象也是父類的實例
        /*
         * prt(myLittleBird instanceof BigBird);//編譯報錯  兩個沒有繼承關系的類之間沒有instanceof關系      
         * prt(1 instanceof int);//編譯錯誤           
         */
    }
    //判斷及顯示A是否為B的實例
    static void prt(boolean A_is_instanceof_B){
       if(A_is_instanceof_B){
           System.out.println("YES");
       }
       else{
           System.out.println("NO");
       }
    }

}
技術分享技術分享

輸出結果:
技術分享

java :instanceof用法