ホームページ > Java > &#&チュートリアル > Java でオーバーライドされたメソッドは異なる戻り値の型を持つことができますか?

Java でオーバーライドされたメソッドは異なる戻り値の型を持つことができますか?

Mary-Kate Olsen
リリース: 2024-11-30 13:12:11
オリジナル
501 人が閲覧しました

Can Overridden Methods in Java Have Different Return Types?

メソッドのオーバーライドと戻り値の型の違い

オーバーライドされたメソッドの戻り値の型は異なりますか?

Java では共変戻り値の型がサポートされているため、オーバーライドされたメソッドがより具体的な戻り値の型を持つことができます。

オーバーライドするメソッドの戻り値の型は、オーバーライドされるメソッドの戻り値の型に割り当て可能である必要があります。例:

class ShapeBuilder {
    ...
    public Shape build() {
    ....
}

class CircleBuilder extends ShapeBuilder{
    ...
    @Override
    public Circle build() {
    ....
}
ログイン後にコピー

Java 言語仕様 (セクション 8.4.5) に従って、次の場合に戻り値の型の置換可能性が許可されます。

  • 戻り値の型が参照型であり、R1 が付いている(オーバーライドされたメソッドの戻り値の型) は、R2 (オーバーライドされたメソッドの戻り値の型) のサブタイプであるか、チェックされていない状態でサブタイプに変換可能です。変換。
  • R1 は R2 の消去 (型パラメータの削除) です。

レガシー動作 (Java 5 以前)

以前Java 5 では、オーバーライドされたメソッドの戻り値の型は不変であり、メソッドの戻り値の型と一致する必要がありました。メソッドを正確にオーバーライドします。

以上がJava でオーバーライドされたメソッドは異なる戻り値の型を持つことができますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート