更新時(shí)間:2025-05-10 11:50:12作者:佚名
超載意味著超載,覆蓋意味著覆蓋,而覆蓋表示重寫(xiě)。從中國(guó)的含義中,沒(méi)有區(qū)別,但是英語(yǔ)定義如下:
當(dāng)一個(gè)類(lèi)中的兩個(gè)或多個(gè)方法具有相同的方法名稱(chēng)但不同的參數(shù)時(shí),就會(huì)發(fā)生重載。
覆蓋或覆蓋意味著具有具有相同方法名稱(chēng)和參數(shù)的兩種方法(即方法簽名)。其中一種方法是在父班中,另一種是在子類(lèi)中。
也就是說(shuō)overwrite是什么意思,過(guò)載在同一類(lèi)中,并且有多個(gè)具有相同方法名稱(chēng)的函數(shù)網(wǎng)校頭條,但是它們具有不同的參數(shù)(參數(shù)數(shù),類(lèi)型,順序)。
雖然覆蓋和覆蓋在子類(lèi)和父類(lèi)之間,但子類(lèi)和父類(lèi)具有相同的方法名稱(chēng)和參數(shù)列表,只需覆蓋方法主體即可。這是面向?qū)ο蟮木幊痰亩鄳B(tài)性。
超載規(guī)則:
(1)包含具有相同名稱(chēng)的多個(gè)函數(shù),但是參數(shù)不同。
(2)參數(shù)類(lèi)型,參數(shù)數(shù)量和參數(shù)順序(不同類(lèi)型之間)至少有一個(gè)差異。
(3)可以更改返回值類(lèi)型(不能用作超負(fù)荷判斷的基礎(chǔ))
(4)可以更改訪問(wèn)修飾符(不能用作超負(fù)荷判斷的基礎(chǔ))
(5)可以更改異常類(lèi)型和數(shù)字(不能用作超負(fù)荷判斷的基礎(chǔ))
重寫(xiě)規(guī)則:
(1)在子類(lèi)和父級(jí)之間存在
(2)子類(lèi)的方法名稱(chēng)和參數(shù)列表必須與父類(lèi)完全相同。
(3)可以更改返回值類(lèi)型,但是子類(lèi)返回值類(lèi)型必須是父類(lèi)返回值類(lèi)型的派生類(lèi)。
(4)可以更改訪問(wèn)修飾符,但是子類(lèi)權(quán)限只能更開(kāi)放。
(5)無(wú)法重寫(xiě)為最終的方法。
(6)不能重寫(xiě)為靜態(tài)的方法,但可以重新編寫(xiě)。
(7)無(wú)法重寫(xiě)構(gòu)造函數(shù)。
(8)當(dāng)子類(lèi)和父類(lèi)在同一軟件包中時(shí),子類(lèi)可以覆蓋父類(lèi)的所有方法(私有和最終)。
(9)當(dāng)子類(lèi)和父類(lèi)以不同的軟件包為單位時(shí),子類(lèi)只能覆蓋父類(lèi)的公共和受保護(hù)的非最終方法。
(10)重寫(xiě)可以拋出任何非強(qiáng)制性例外,但不能比父母類(lèi)方法提出新的強(qiáng)制性例外或更廣泛的異常。
強(qiáng)制性例外:必須嘗試捕捉或扔出拋出例外的部分。
非強(qiáng)制性例外:嘗試或不擲或不投擲。
在Java中,只有Runtime Exception是強(qiáng)制性例外overwrite是什么意思,其余的是非強(qiáng)制性例外。
2025-05-08 17:33
2025-05-08 15:32