Java的Override和Overload
Override
重寫(xiě):子類對(duì)父類的允許訪問(wèn)的方法實(shí)現(xiàn)過(guò)程重新編寫(xiě)锥涕,但是 不可改變返回值和入?yún)⒐鹑V嘏獙?xiě)的規(guī)則:
參數(shù)列表必須完全與被重寫(xiě)方法的相同;
返回類型必須完全與被重寫(xiě)方法的返回類型相同睛约;
訪問(wèn)權(quán)限不能比父類中被重寫(xiě)的方法的訪問(wèn)權(quán)限更低。例如:如果父類的一個(gè)方法被聲明為public,那么
在子類中重寫(xiě)該方法就不能聲明為protected探孝。
父類的成員方法只能被它的子類重寫(xiě)。
聲明為final的方法不能被重寫(xiě)誉裆。
聲明為static的方法不能被重寫(xiě)顿颅,但是能夠被再次聲明。
子類和父類在同一個(gè)包中足丢,那么子類可以重寫(xiě)父類所有方法粱腻,除了聲明為private和final的方法。
子類和父類不在同一個(gè)包中斩跌,那么子類只能夠重寫(xiě)父類的聲明為public和protected的非final方法绍些。
重寫(xiě)的方法能夠拋出任何非強(qiáng)制異常,無(wú)論被重寫(xiě)的方法是否拋出異常耀鸦。但是柬批,重寫(xiě)的方法不能拋出新的強(qiáng)制性異常,或者比被重寫(xiě)方法聲明的更廣泛的強(qiáng)制性異常袖订,反之則可以氮帐。
構(gòu)造方法不能被重寫(xiě)。
如果不能繼承一個(gè)方法洛姑,則不能重寫(xiě)這個(gè)方法上沐。
當(dāng)子類需要調(diào)取其父類的被重寫(xiě)的方法的時(shí)候,需要Super關(guān)鍵楞艾。
Overload
重載:在同一個(gè)類中参咙,方法名字相同龄广,而參數(shù)不同。返回類型可以相同也可以不同蕴侧。每個(gè)重載的方法(或者構(gòu)造函數(shù))都必須有一個(gè)獨(dú)一無(wú)二的參數(shù)類型列表蜀细。最常用的地方就是構(gòu)造器的重載。重載規(guī)則:
- 被重載的方法必須改變參數(shù)列表(參數(shù)個(gè)數(shù)或類型不一樣)戈盈;
- 被重載的方法可以改變返回類型奠衔;
- 被重載的方法可以改變?cè)L問(wèn)修飾符;
- 被重載的方法可以聲明新的或更廣的檢查異常塘娶;
- 方法能夠在同一個(gè)類中或者在一個(gè)子類中被重載归斤。
- 無(wú)法以返回值類型作為重載函數(shù)的區(qū)分標(biāo)準(zhǔn)。
關(guān)注我刁岸,關(guān)注測(cè)試
FROM:https://blog.csdn.net/crisschan