- 重寫(override) = 覆蓋
一般是子類繼承父類后,重寫其中的方法。
重寫有幾個(gè)需要注意的規(guī)則:
1、重寫方法的參數(shù)列表必須完全與被重寫的方法的相同,否則不能稱其為重寫而是重載.
2、重寫方法的訪問修飾符一定要大于被重寫方法的訪問修飾符(public>protected>default>private)
3、重寫的方法的返回值必須和被重寫的方法的返回一致
4、被重寫的方法不能為private,否則在其子類中只是新定義了一個(gè)方法,并沒有對其進(jìn)行重寫
5、靜態(tài)方法不能被重寫為非靜態(tài)的方法(會(huì)編譯出錯(cuò))
- 重載(overload)
一般是用于在一個(gè)類內(nèi)實(shí)現(xiàn)若干重載的方法,這些方法的名稱相同而參數(shù)形式不同。
重載的規(guī)則:
1、在使用重載時(shí)只能通過相同的方法名、不同的參數(shù)形式實(shí)現(xiàn)。不同的參數(shù)形式可以是不同的參數(shù)類型,不同的參數(shù)個(gè)數(shù),不同的參數(shù)順序(參數(shù)類型必須不一樣);
2、不能通過訪問權(quán)限、返回類型、拋出的異常進(jìn)行重載; 3、方法的異常類型和數(shù)目不會(huì)對重載造成影響;
繼承是子類使用父類的方法,而多態(tài)則是父類使用子類的方法。一般,我們使用多態(tài)是為了避免在父類里大量重載引起代碼臃腫且難于維護(hù)。