Heim > Java > javaLernprogramm > Wie kann ich in Java über eine Superklassenvariable auf Unterklassenmethoden zugreifen?

Wie kann ich in Java über eine Superklassenvariable auf Unterklassenmethoden zugreifen?

Linda Hamilton
Freigeben: 2024-12-21 03:20:10
Original
137 Leute haben es durchsucht

How Can I Access Subclass Methods from a Superclass Variable in Java?

Zugriff auf Unterklassenmethoden von Superklassen

In der objektorientierten Programmierung ermöglicht die Vererbung, dass Klassen Eigenschaften und Verhaltensweisen von ihren übergeordneten Klassen erben. Beim Zugriff auf Methoden von Unterklassen über eine Superklassenvariable treten jedoch einige Einschränkungen auf.

Beachten Sie den folgenden Codeausschnitt:

abstract public class Pet {
    ...
}

public class Cat extends Pet {
    private String color;
    public String getColor() { ... }
}

public class Kennel {
    public static void main(String[] args) {
        Pet cat = new Cat("Feline", 12, "Orange");
        cat.getColor(); // Compiler error: getColor() not defined in Pet
    }
}
Nach dem Login kopieren

Wenn in der Kennel-Klasse ein Cat-Objekt einem zugewiesen wird Pet-Variable, nur in Pet definierte Mitglieder sind zugänglich. Dazu gehören Methoden wie getName() und getAge(), aber nicht getColor().

Um dieses Problem zu beheben, gibt es zwei Möglichkeiten:

1. Variable als Unterklasse deklarieren:

Variable als spezifische Unterklasse deklarieren:

Cat cat = new Cat("Feline", 12, "Orange");
cat.getColor(); // Valid, getColor() is defined in Cat
Nach dem Login kopieren

2. Variable in Unterklasse umwandeln:

Variable in eine bekannte oder erwartete Unterklasse umwandeln:

Pet cat = new Cat("Feline", 12, "Orange");
((Cat)cat).getColor(); // Valid, getColor() is accessible via casting
Nach dem Login kopieren

Beispielimplementierung:

Hier ist eine korrigierte Version der Kennel-Klasse:

public class Kennel {
    public static void main(String[] args) {
        Cat cat = new Cat("Feline", 12, "Orange");
        System.out.println("Cat's color: " + cat.getColor());
    }
}
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie kann ich in Java über eine Superklassenvariable auf Unterklassenmethoden zugreifen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage