Java 中的 'instanceof' 運算子用於什麼?
Java 的 instanceof 運算子檢查物件是否屬於特定類別或實作特定的介面。它是一個二元運算符,傳回一個布林值:如果物件是指定類型的實例,則傳回 true,否則傳回 false。
了解 instanceof
的行為以下程式碼片段:
Object source = new Button(); if (source instanceof Button) { // ... } else { // ... }
在此範例中,來源變數保存使用 Button 類別建立的物件。 instanceof 運算子用於檢查 source 是否實際上是 Button 物件。如果檢查傳回 true(因為 source 是 Button),則 if 區塊內的程式碼將會執行。否則(如果source不是Button),將執行else區塊中的程式碼。
繼承和instanceof
instanceof運算子考慮繼承關係。假設我們有以下類層次結構:
interface Domestic {} class Animal {} class Dog extends Animal implements Domestic {}
如果我們有一個Dog 物件狗,我們可以使用instanceof 來檢查它是否屬於不同類型:
dog instanceof Domestic // true dog instanceof Animal // true dog instanceof Dog // true
但是, instanceof 無法檢查物件是否為不在同一繼承層次結構中的超類型的實例。例如,以下檢查將無法編譯:
dog instanceof Cat // does not compile
運行時類型檢查
instanceof 是運行時操作,這意味著它是在程式執行期間執行的。這允許程式設計師確定物件的類型並相應地處理它。它通常用於編譯時未知物件類型的情況。
以上是Java 的「instanceof」運算子如何用於類別和介面檢查?的詳細內容。更多資訊請關注PHP中文網其他相關文章!