Java instanceof-Operator: Ein umfassender Leitfaden
Java instanceof-Operator: Ein umfassender Leitfaden
Entdecken Sie, wie Javas instanceof-Operator funktioniert, mit klaren Beispielen zu grundlegender Verwendung, Vererbung und Schnittstellen.
In Java ermöglicht der instanceof-Operator die Prüfung, ob ein Objekt zu einer bestimmten Klasse oder Schnittstelle gehört. Er gibt true zurück, wenn der Laufzeittyp des Objekts dem angegebenen Typ entspricht, andernfalls false.
objektName instanceof klassenName;
Im Folgenden ein einfaches Beispiel, das den Operator mit einem String und einer benutzerdefinierten Klasse demonstriert.
Beispiel: Grundlegende instanceof-Verwendung
class Haupt { public static void main(String[] args) { String name = "Programiz"; boolean ergebnis1 = name instanceof String; System.out.println("name ist eine Instanz von String: " + ergebnis1); Haupt obj = new Haupt(); boolean ergebnis2 = obj instanceof Haupt; System.out.println("obj ist eine Instanz von Haupt: " + ergebnis2); } }
Ausgabe:
name ist eine Instanz von String: true obj ist eine Instanz von Haupt: true
Beide Prüfungen geben true zurück, da name tatsächlich ein String und obj eine Haupt-Instanz ist.
Hinweis: In Java ist String ein Referenztyp, kein Primitivtyp.
instanceof mit Vererbung verwenden
Der Operator ist unentbehrlich bei der Arbeit mit polymorphen Hierarchien. Er bestätigt, dass eine Unterklassen-Instanz auch ihren Oberklassen-Typ erfüllt.
// Oberklasse class Tier {} // Unterklasse class Hund extends Tier {} class Haupt { public static void main(String[] args) { Hund h1 = new Hund(); System.out.println(h1 instanceof Hund); // true System.out.println(h1 instanceof Tier); // true } }
Wie gezeigt, wird h1 sowohl als Hund als auch als Tier erkannt, was Javas Vererbungsmodell widerspiegelt.
instanceof mit Schnittstellen verwenden
instanceof prüft auch, ob ein Objekt eine bestimmte Schnittstelle implementiert.
interface Tier { } class Hund implements Tier { } class Haupt { public static void main(String[] args) { Hund h1 = new Hund(); System.out.println(h1 instanceof Tier); // true } }
Hier ist h1 ein Hund, der Tier implementiert, daher gibt der Operator true zurück.
Hinweis: Jede Java-Klasse erweitert letztlich java.lang.Object. Daher ist jedes Objekt auch eine Instanz von Object. Zum Beispiel:
h1 instanceof Object
Dies wird immer zu true evaluiert.
Java
- Javas final-Schlüsselwort verstehen: Variablen, Methoden und Klassen
- Java-Vererbung meistern: Konzepte, Typen und praktische Beispiele
- Java statische verschachtelte Klassen verstehen: Nutzung, Unterschiede und Beispiele
- Java anonyme innere Klassen meistern: Definition, Syntax und praktische Beispiele
- Java Singleton-Pattern erklärt: Sichere Implementierung und Verwendung
- Java Reflection meistern: Klassen, Methoden und Felder zur Laufzeit inspizieren
- Java ObjectOutputStream meistern: Serialisierung, Methoden und praktische Beispiele
- Java Generics meistern – Wiederverwendbaren, typsicheren Code erstellen
- Java-Dateioperationen mit java.io meistern – Erstellen, Lesen, Schreiben & Löschen
- Java 9 Diamond Operator für anonyme innere Klassen – Typinferenz endlich erlaubt