首頁 >Java >java教程 >Java 中的重寫方法可以有不同的回傳類型嗎?

Java 中的重寫方法可以有不同的回傳類型嗎?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-30 13:12:11567瀏覽

Can Overridden Methods in Java Have Different Return Types?

重寫方法和傳回型別差異

重寫方法的回傳類型可以不同嗎?

Java 對協變返回類型的支援允許重寫的方法擁有比它們本身的方法更具體的返回類型override.

重寫方法的返回類型必須可分配給被重寫方法的回傳類型。例如:

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn