Überschreibende Methoden und Rückgabetypvarianz
Können sich überschriebene Methoden im Rückgabetyp unterscheiden?
Durch die Unterstützung kovarianter Rückgabetypen durch Java können überschriebene Methoden über spezifischere Rückgabetypen verfügen als die Methoden, die sie verwenden override.
Der Rückgabetyp der überschreibenden Methode muss dem Rückgabetyp der überschriebenen Methode zuweisbar sein. Zum Beispiel:
class ShapeBuilder { ... public Shape build() { .... } class CircleBuilder extends ShapeBuilder{ ... @Override public Circle build() { .... }
Gemäß der Java-Sprachspezifikation (Abschnitt 8.4.5) ist die Ersetzbarkeit von Rückgabetypen zulässig, wenn:
Legacy-Verhalten (Java 5 und früher)
Prior Bis Java 5 hatten überschriebene Methoden invariante Rückgabetypen, was bedeutete, dass sie mit dem Rückgabetyp der überschriebenen Methode übereinstimmen mussten genau.
Das obige ist der detaillierte Inhalt vonKönnen überschriebene Methoden in Java unterschiedliche Rückgabetypen haben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!