2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩8頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、有時(shí)候,類的同一種功能有多種實(shí)現(xiàn)方式,到底采用那種實(shí)現(xiàn)方式,取決于調(diào)用者給定的參數(shù)。例如雜技師能訓(xùn)練動(dòng)物,對于不同的動(dòng)物有不同的訓(xùn)練方式。publicvoidtrain(Dogdog)訓(xùn)練小狗站立,排隊(duì),做算數(shù)publicvoidtrain(Monkeymonkey)訓(xùn)練猴子騎自行車等再如某個(gè)類的一個(gè)功能是比較兩個(gè)城市是否相同,一種方式是比較兩個(gè)城市的名字,一種是除了比較兩個(gè)城市的名字外,還要比較所在國家的名字。publiboolean

2、isSameCity(Stringcity1Stringcity2)returncity1.equals(city2)publicbooleanisSameCity(Stringcity1Stringcity2StirngCountry1StringCountry2)returnisSameCity(city1city2)在例如java.lang.Math類的max()方法能夠從兩個(gè)數(shù)字中取出最大值,它有多種實(shí)現(xiàn)方式。publicsta

3、ticintmax(intaintb)publicstaticintmax(longalongb)publicstaticintmax(floatafloatb)以下程序多次調(diào)用Math類的max()方法,運(yùn)行時(shí),Java虛擬機(jī)先判斷給定參數(shù)的類型,然后決定到底執(zhí)行哪個(gè)max()方法。參數(shù)為int類型,因此執(zhí)行max(intaintb)方法Math.max(12)參數(shù)為flloat類型,因此執(zhí)行max(floatafloatb)方法Ma

4、th.max(1.0F2.9F)對于類的方法(包括從父類中繼承的方法)如果有兩個(gè)方法的方法名相同,但參數(shù)不一致,那么可以說,一個(gè)方法是另一個(gè)方法的重載方法。重載方法滿足以下條件方法名相同方法的參數(shù)類型,個(gè)數(shù),順序至少有一項(xiàng)不相同方法的返回類型可以不相同方法的修飾符可以不相同在一個(gè)類中不允許定義另個(gè)方法名相同,并且參數(shù)簽名也完全相同的方法。假如存在這樣的兩個(gè)方法,Java虛擬機(jī)在運(yùn)行時(shí)就無法決定到底執(zhí)行哪個(gè)方法。參數(shù)簽名是指參數(shù)的類型,個(gè)

5、數(shù)和順序。例如:publicclassSamplepublicvoidamethod(intiStrings)下面哪個(gè)方法可以加入到Sample類中去?publicvoidamethod(Stringsinti)OK是寫字,除了Sub1用腳寫字外,其他都用手寫字??梢猿橄笠粋€(gè)父類Base,它有一個(gè)表示寫字的方法write(),那么這個(gè)方法到底如何實(shí)現(xiàn)呢?從盡可能提高代碼可重用性的角度看,write()方法應(yīng)該采取適用于大多數(shù)子類的實(shí)現(xiàn)方

6、式,這樣就可以避免在大多數(shù)子類中重復(fù)定義write()方法。因此Base類的write()方法定義如下:publicvoidwrite()Base類的write()方法用手寫字由于Sub1類的寫字的實(shí)現(xiàn)方式與Base類不一樣,因此在Sub1類中必須重新定義write()方法。publicvoidwrite()Sub1類中的write()方法用腳寫字如果在子類中定義的一個(gè)方法,其名稱,返回類型及參數(shù)簽名正好與父類中某個(gè)方法的名稱,返回類型

7、及參數(shù)簽名相匹配,那么可以說,子類的方法覆蓋了父類的方法。覆蓋方法必須滿足多種約束1)子類方法的名稱,參數(shù)簽名和返回類型必須與父類方法的名稱,參數(shù)簽名和返回類型一致例如,下列代碼將發(fā)生編譯錯(cuò)誤publicclassBasepublicvoidmethod()……….publicclassSubextendsBasepublicintmethod()…………….return0編譯錯(cuò)誤method()inSimon.Subcannotove

8、rridmethod()inSimon.Baseattemptingtouseincompatiblereturntype在Simon包Sub中的方法不不能重寫(覆蓋)在Simon包Base類中的方法試圖用不匹配的返回類型Java編譯器首先判斷Sub類的method()方法與Base類的method()方法的參數(shù)簽名。由于兩者一致,所以Java編譯器就認(rèn)為Sub類的method()方法試圖覆蓋父類的方法,既然如此,Sub類的method

9、()方法就必須和被覆蓋的方法具有相同的返回類型。以下代碼中子類覆蓋了父類的一個(gè)方法,然后又定義了一個(gè)重載方法,這是合法的。publicclassBasepublicvoidmethod()…………..publicclassSubextendsBasepublicvoidmethod()……….覆蓋Base類的method方法publicintmehod(inta)………return0.重載method方法2)子類方法不能縮小父類方法的訪

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論