メソッドのオーバーライドと戻り値の型の違い
オーバーライドされたメソッドの戻り値の型は異なりますか?
Java では共変戻り値の型がサポートされているため、オーバーライドされたメソッドがより具体的な戻り値の型を持つことができます。
オーバーライドするメソッドの戻り値の型は、オーバーライドされるメソッドの戻り値の型に割り当て可能である必要があります。例:
class ShapeBuilder { ... public Shape build() { .... } class CircleBuilder extends ShapeBuilder{ ... @Override public Circle build() { .... }
Java 言語仕様 (セクション 8.4.5) に従って、次の場合に戻り値の型の置換可能性が許可されます。
レガシー動作 (Java 5 以前)
以前Java 5 では、オーバーライドされたメソッドの戻り値の型は不変であり、メソッドの戻り値の型と一致する必要がありました。メソッドを正確にオーバーライドします。
以上がJava でオーバーライドされたメソッドは異なる戻り値の型を持つことができますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。