java 繼承關系判斷


繼承關系判斷

  • Class.java # public native boolean isInstance(Object obj);

    // true
    System.out.println(childType.isInstance(childObject));
    // true
    System.out.println(parentType.isInstance(childObject));
    // false
    System.out.println(childType.isInstance(parentObject));
    

    說明:

    • 參數obj的參數類型若為.class,返回 false
    • 當參數強轉為調用者對象不會報異常時,返回true(即調用者為參數的類或父類)
  • Class.java#public native boolean isAssignableFrom(Class<?> cls);

    調用者和參數都是.class類型;參數是調用者的子類時為true

    // true
    System.out.println(parentType.isAssignableFrom(childType));
    
  • instance of 關鍵字

    用法:A isntance of B:判斷左邊對象是否是右邊的實例;

    @Test
    public void test3() {
        Child1 childObject = new Child1();
        Parent1 parentObject = new Parent1();
        // true
        System.out.println(childObject instanceof Parent1);
        // false
        System.out.println(parentObject instanceof Child1);
    }
    


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM