日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

Java中方法签名signature、方法重载以及“两同两小一大”的方法覆盖(方法重写)总结

發(fā)布時間:2025/3/19 java 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java中方法签名signature、方法重载以及“两同两小一大”的方法覆盖(方法重写)总结 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1. 方法

1.1 方法

實(shí)現(xiàn)了某一功能,代碼可以復(fù)用

1.2?方法簽名

java中每個方法都有一個簽名,包含方法名和參數(shù)列表(類型、個數(shù)以及順序),只要其中一個不同,方法的簽名不同,也就是屬于不同的方法。但注意,簽名不包含返回值類型,定義如下圖。

?如下圖,只要簽名相同,就認(rèn)為是同個方法,所以即使我們設(shè)置返回值類型不同時,會提示我們方法“topo(int)”已經(jīng)被定義,所以在實(shí)際開發(fā)中不要出現(xiàn)簽名相同,但返回值類型不同的方法

?

2. 方法重載(overload)

2.1 定義:同一個類中多個方法有相同的方法名,但是參數(shù)列表不同稱作方法重載(不考慮修飾符和返回值類型)。

2.2 優(yōu)點(diǎn):可以調(diào)用同一個方法,傳入不同參數(shù)實(shí)現(xiàn)相似的功能,便于程序員開發(fā)。

2.3 使用:在實(shí)現(xiàn)功能相似時,為了便于記憶,方便使用,考慮使用方法重載。

?

3. 方法覆蓋或者方法重寫(override、overwrite)

3.1 定義及使用:子類繼承父類后,父類的方法功能滿足不了子類的需求,子類有必要對繼承的父類方法進(jìn)行方法覆蓋。父類的構(gòu)造方法以及private修飾的私有方法不能被繼承,也就不能被覆蓋。

3.2 構(gòu)成方法覆蓋:子類重寫的方法和父類方法要有相同的方法名和參數(shù)列表;子類方法的返回類型要小于等于父類方法返回類型(也就是子類方法的返回類型要么是父類方法返回類型的子類,要么返回值類型一樣);子類方法拋出的異常類型要小于等于父類方法拋出的類型;子類方法訪問權(quán)限大于等于父類方法訪問權(quán)限。口訣就是“兩同兩小一大”

?

3.3 以下是子類方法返回類型必須小于等于父類方法返回類型的示例。從代碼可以看出子類方法返回類型Dog是父類方法返回類型Pet的子類時,覆蓋成功;反之,編譯器則報(bào)錯:子類TestPro中的dko(int)方法和父類Pok的dko(int)方法沖突,嘗試使用不兼容的返回值類型。

????

3.4 以下是子類方法返拋出異常必須小于等于父類方法拋出異常的示例。首先,由于子類方法拋出兩個異常DateTimeException和BindException是父類方法拋出一個異常Exception的子類,所以覆蓋成功,所以異常只考慮是不是父類,而不是考慮異常數(shù)量的多少;反之,編譯器則報(bào)錯:子類TestPro中的dko(int)方法和父類Pok的dko(int)方法沖突,被覆蓋的方法沒有拋出java.lang.Exception。

?

3.5?以下是子類方法訪問權(quán)限必須大于等于父類方法訪問權(quán)限的示例。首先,當(dāng)子類方法訪問權(quán)限public大于父類方法訪問權(quán)限private時,方法覆蓋成功;反之,編譯器則報(bào)錯:子類TestPro中的dko(int)方法和父類Pok的dko(int)方法沖突,試圖分配較弱的訪問權(quán)限private,而父類方法是public。

??

?

總結(jié)

以上是生活随笔為你收集整理的Java中方法签名signature、方法重载以及“两同两小一大”的方法覆盖(方法重写)总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。