1.重寫Override
- 子類繼承父類,子類就繼承了父類的方法,而不需要重新編寫相同的方法,但是有時(shí)子類不想原封不動(dòng)地繼承父類的方法,而需要做一定的修改,這就需要采用方法的重寫。所以在方法名,參數(shù)列表,返回類型(除過(guò)子類中方法的返回值是父類中方法返回值的子類時(shí))都相同的情況下,對(duì)方法體進(jìn)行修改或重寫,這就是重寫方法。
- 若子類中的方法與父類中的某一方法具有相同的方法名、返回類型和參數(shù)表,則新方法將覆蓋原有的方法。如果仍然需要使用父類中原有的方法,可使用super關(guān)鍵字,該關(guān)鍵字引用了當(dāng)前類的父類。
- 子類函數(shù)的訪問(wèn)修飾權(quán)限不能少于父類的。(public>protected>default>private)
2.重載Overload
- 方法重載是讓類以統(tǒng)一的方式處理不同類型的一種手段,java的方法重載,就是在類中可以創(chuàng)建多個(gè)方法,它們具有相同的名字,但具有不同的參數(shù)和不同的定義。
- 重載的時(shí)候,方法名要一樣,但是參數(shù)類型和個(gè)數(shù)不一樣,返回值類型可以相同也可以不相同,無(wú)法以返回類型作為重載函數(shù)的區(qū)分標(biāo)準(zhǔn)。
3.重寫與重載的區(qū)別
- 方法的重寫與重載都是實(shí)現(xiàn)多態(tài)的方式,區(qū)別在于重載實(shí)現(xiàn)的是編譯時(shí)的多態(tài)性,而重寫實(shí)現(xiàn)的是運(yùn)行時(shí)的多態(tài)性。
- 重載發(fā)生在一個(gè)類中,同名的方法如果參數(shù)列表不同則為重載;重寫發(fā)生在子類與父類之間,重寫要求方法有相同的參數(shù)列表,有相同的返回類型,比父類被重寫的方法更好訪問(wèn),不能比父類被重寫方法聲明更多的異常。
引用
https://blog.csdn.net/wintershii/article/details/80558739