1. 程式人生 > 實用技巧 >instanceof關鍵字

instanceof關鍵字

instanceof關鍵字用來判斷物件和類是否存在父子關係

/*
Person是一個父類
Man和Woman都是Person的直接子類
 */
Object obj = new Man();
System.out.println("obj instanceof Object: " + (obj instanceof Object));
System.out.println("obj instanceof Person: " + (obj instanceof Person));
System.out.println("obj instanceof Man: " + (obj instanceof Man));
System.out.println("obj instanceof Woman: " + (obj instanceof Woman));
System.out.println("obj instanceof String: " + (obj instanceof String));

System.out.println();
Person person = new Man();
System.out.println("person instanceof Object: " + (person instanceof Object));
System.out.println("person instanceof Person: " + (person instanceof Person));
System.out.println("person instanceof Man: " + (person instanceof Man));
System.out.println("person instanceof Woman: " + (person instanceof Woman));
// 編譯報錯,因為Person和String沒有父子關係
// System.out.println("person instanceof String: " + (person instanceof String));

System.out.println();
Man man = new Man();
System.out.println("man instanceof Object: " + (man instanceof Object));
System.out.println("man instanceof Person: " + (man instanceof Person));
System.out.println("man instanceof Man: " + (man instanceof Man));
// 編譯報錯,因為Man和Woman,String都沒有父子關係
// System.out.println("man instanceof Woman: " + (man instanceof Woman));
// System.out.println("man instanceof String: " + (man instanceof String));

執行結果

obj instanceof Object: true
obj instanceof Person: true
obj instanceof Man: true
obj instanceof Woman: false
obj instanceof String: false

person instanceof Object: true
person instanceof Person: true
person instanceof Man: true
person instanceof Woman: false

man instanceof Object: true
man instanceof Person: true
man instanceof Man: true

如果instanceof關鍵字前邊的物件和後邊的類沒有任何父子關係,編譯報錯