In Java kann es bei der Arbeit mit Vererbung zu Schwierigkeiten kommen, über eine Oberklassenreferenz auf unterklassenspezifische Methoden zuzugreifen.
Das Problem tritt auf, wenn eine Variable als Superklassentyp deklariert wird, wodurch der Zugriff auf Methoden und Mitgliedsvariablen eingeschränkt wird, die nur in der Superklasse definiert sind. Der folgende Code veranschaulicht beispielsweise das Problem:
Pet cat = new Cat("Feline", 12, "Orange"); cat.getName(); // This is allowed cat.getColor(); // This is not allowed (getColor() is not in Pet)
Um dieses Problem zu beheben, gibt es einige Optionen:
Cat cat = new Cat("Feline", 12, "Orange"); cat.getName(); // Allowed cat.getColor(); // Allowed
Dieser Ansatz bietet direkten Zugriff auf die Methoden und Mitglieder der Unterklasse Variablen.
Pet cat = new Cat("Feline", 12, "Orange"); ((Cat)cat).getName(); // Allowed ((Cat)cat).getColor(); // Allowed
Hier wandeln wir die Variable cat vorher explizit in den Cat-Typ um Zugriff auf die unterklassenspezifischen Methoden.
Pet pet = new Cat("Feline", 12, "Orange"); Cat cat = (Cat)pet; cat.getName(); // Allowed cat.getColor(); // Allowed
Dies kombiniert beide Methoden aus Gründen der Bequemlichkeit und Klarheit.
Durch die Verwendung dieser Techniken können Sie Unterklassenmethoden effektiv aus Superklassenreferenzen aufrufen und so den Zugriff auf sicherstellen die gewünschten Funktionalitäten.
Das obige ist der detaillierte Inhalt vonWie kann ich mithilfe einer Superklassenreferenz in Java auf Unterklassenmethoden zugreifen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!