方法重載(Overload)和方法重寫(Override)有什么區(qū)別?
2022-08-04 17:56 作者:網(wǎng)星軟件 | 我要投稿
重載和重寫都為實現(xiàn)多態(tài)的方式,重載實現(xiàn)的是編譯時的多態(tài)性,重寫實現(xiàn)的是運行時的多態(tài)性。
重載發(fā)生在一個類中,同名的方法如果有不同的參數(shù)列表(參數(shù)類型,參數(shù)個數(shù))則視為重載;
重寫發(fā)生在子類和父類之間,要求重寫方法之間有相同的返回類型和參數(shù)列表,比父類被重寫方法更好訪問,不能比父類被重寫方法聲明更多的異常。
方法重載規(guī)則:
1.方法名一致,參數(shù)列表中的參數(shù)的順序,類型,個數(shù)不同。
2.重載與方法的返回值無關(guān),存在于父類和子類,同類中。
3.可以拋出不同的異常,可以有不同修飾符。
方法重寫規(guī)則:
1.參數(shù)列表和返回類型必須完全與被重寫方法的一致。
2.構(gòu)造方法、聲明為final的方法不能被重寫,聲明為static的方法同樣不能被重寫,但能夠被再次聲明。
3.訪問權(quán)限不能比父類中被重寫的方法的訪問權(quán)限更低
4.重寫方法能夠拋出任何運行異常
????????(1).無論被重寫的方法是否拋出異常,但是,重寫的方法不能拋出新的編譯異常
????????(2).或者比被重寫方法聲明的更廣泛的編譯異常,反之可以。
標簽: