Wofür wird der Operator „instanceof“ in Java verwendet?
Der Java-Operator „instanceof“ prüft, ob ein Objekt zu einer bestimmten Klasse gehört oder implementiert eine bestimmte Schnittstelle. Es handelt sich um einen binären Operator, der einen booleschen Wert zurückgibt: „true“, wenn das Objekt eine Instanz des angegebenen Typs ist, andernfalls „false“.
Das Verhalten von „instanceof“ verstehen
Bedenken Sie Folgendes Folgender Codeausschnitt:
Object source = new Button(); if (source instanceof Button) { // ... } else { // ... }
In diesem Beispiel enthält die Quellvariable ein Objekt, das mit der Button-Klasse erstellt wurde. Der Instanzoperator wird verwendet, um zu überprüfen, ob die Quelle tatsächlich ein Button-Objekt ist. Wenn die Prüfung „true“ zurückgibt (weil die Quelle ein Button ist), wird der Code im if-Block ausgeführt. Andernfalls (wenn die Quelle kein Button ist) wird der Code im else-Block ausgeführt.
Vererbung und Instanz von
Der Instanz von-Operator berücksichtigt Vererbungsbeziehungen. Nehmen wir an, wir haben die folgende Klassenhierarchie:
interface Domestic {} class Animal {} class Dog extends Animal implements Domestic {}
Wenn wir ein Hundeobjekt Hund haben, können wir „instanceof“ verwenden, um zu überprüfen, ob es zu verschiedenen Typen gehört:
dog instanceof Domestic // true dog instanceof Animal // true dog instanceof Dog // true
Allerdings Instanz von kann nicht prüfen, ob ein Objekt eine Instanz eines Supertyps ist, der sich nicht in derselben Vererbungshierarchie befindet. Beispielsweise würde die folgende Prüfung nicht kompiliert werden:
dog instanceof Cat // does not compile
Laufzeittypprüfung
instanceof ist eine Laufzeitoperation, was bedeutet, dass sie während der Programmausführung ausgeführt wird. Dadurch können Programmierer den Typ eines Objekts bestimmen und entsprechend damit umgehen. Es wird häufig in Situationen verwendet, in denen der Typ eines Objekts zur Kompilierungszeit nicht bekannt ist.
Das obige ist der detaillierte Inhalt vonWie funktioniert der „instanceof'-Operator von Java für die Klassen- und Schnittstellenprüfung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!