メソッドのオーバーライドにおける共変の戻り値の型
Java のオーバーライド メソッドは、特定の条件が満たされていれば、戻り値の型が異なる場合があります。具体的には、Java は共変の戻り値の型をサポートしており、オーバーライドするメソッドがオーバーライドするメソッドよりも具体的な戻り値の型を持つことができます。
Java 言語仕様 (JLS) セクション 8.4.5 によれば、これは次の限り許容されます。次のルールが遵守されているため:
元のメソッドが参照型を返す場合:
たとえば、次のコードを考えてみましょう。
class ShapeBuilder { ... public Shape build() { .... } } class CircleBuilder extends ShapeBuilder{ ... @Override public Circle build() { .... } }
この例では、CircleBuilder の build() メソッドが build( ) ShapeBuilder のメソッド。オーバーライドされたメソッドの戻り値の型は Shape ですが、オーバーライドされたメソッドの戻り値の型は、Shape のサブタイプである Circle です。これは、Java の共変戻り型ルールによって許可されています。
以上がJava でメソッドをオーバーライドすると、異なる戻り値の型が使用できるのはどのような場合ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。