Java のオーバーライドされたメソッドには、共変戻り値の型の原則に従って、戻り値の型を変更できる柔軟性があります。これは、オーバーライド メソッドが、オーバーライドされたメソッドで宣言されたデータ型よりも具体的なデータ型を返すことができることを意味します。
説明のために、次の例を考えてみましょう。
class ShapeBuilder { ... public Shape build() { .... } } class CircleBuilder extends ShapeBuilder{ ... @Override public Circle build() { .... } }
このシナリオでは、ShapeBuilder のbuild() メソッドは Shape オブジェクトを返します。CircleBuilder のオーバーライド build() メソッドは、Shape を拡張したより特殊なタイプである Circle オブジェクトを返します。 Circle は Shape に割り当て可能であるため、これは許容されます。
共変戻り型は、次の規則を概説する Java 言語仕様のセクション 8.4.5 に準拠しています。
参照型の場合:
Java 5 より前の Java では、不変の戻り値の型が強制されており、オーバーライドされたメソッドの戻り値の型がオーバーライドされたメソッドと正確に一致する必要がありました。
以上がJava オーバーライドされたメソッドは異なる戻り値の型を持つことができますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。