Heim >Java >javaLernprogramm >Können überschriebene Java-Methoden unterschiedliche Rückgabetypen haben?
Überschriebene Methoden in Java bieten die Flexibilität, die Rückgabetypen zu variieren, indem sie dem Prinzip der kovarianten Rückgabetypen folgen. Dies bedeutet, dass eine überschreibende Methode einen spezifischeren Datentyp zurückgeben kann als den in der überschriebenen Methode deklarierten.
Betrachten Sie zur Veranschaulichung das folgende Beispiel:
class ShapeBuilder { ... public Shape build() { .... } } class CircleBuilder extends ShapeBuilder{ ... @Override public Circle build() { .... } }
In diesem Szenario, obwohl ShapeBuilder Während die build()-Methode ein Shape-Objekt zurückgibt, gibt die übergeordnete build()-Methode von CircleBuilder ein Circle-Objekt zurück, bei dem es sich um einen spezielleren Typ handelt, der Shape erweitert. Dies ist zulässig, da Circle zu Shape zuweisbar ist.
Kovariante Rückgabetypen entsprechen Abschnitt 8.4.5 der Java-Sprachspezifikation, in dem die folgenden Regeln aufgeführt sind:
Für Referenztypen:
Vor Java 5 erzwang Java invariante Rückgabetypen, sodass der Rückgabetyp überschriebener Methoden genau mit der überschriebenen Methode übereinstimmen musste.
Das obige ist der detaillierte Inhalt vonKönnen überschriebene Java-Methoden unterschiedliche Rückgabetypen haben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!