instanceof
instanceof是Java的一個保留關鍵字,左邊是對象,右邊是類,返回類型是Boolean類型。它的具體作用是測試左邊的對象是否是右邊類或者該類的子類創建的實例對象,是,則返回true,否則返回false。
instanceof使用注意事項
先有繼承關系,再有instanceof的使用。
當該測試對象創建時右邊的聲明類型和左邊的類其中的任意一個跟測試類必須得是繼承樹的同一分支或存在繼承關系,否則編譯器會報錯。
instanceof使用示例:
點擊查看代碼
public class Application {
public static void main(String[] args) {
// Object > Person > teacher
// Object > Person > Student
// Object > String
Object o = new Student(); // 主要看這個對象是什么類型與實例化的類名
// instanceof關鍵字可以判斷左邊對象是否是右邊類或者子類的一個實例
System.out.println(o instanceof Student); // o 是Student類的一個實例對象 所以判斷右邊類跟student有無關系 以及顯示聲明有無關系
System.out.println(o instanceof Person); // true
System.out.println(o instanceof Object); // true
System.out.println(o instanceof String); // false
System.out.println(o instanceof Teacher); // 無關系
System.out.println("========================");
Person person = new Student();
System.out.println(person instanceof Person); // true
System.out.println(person instanceof Object); // true
// System.out.println(person instanceof String); // 編譯錯誤
System.out.println(person instanceof Teacher); // 無關系
}
}