您好,登錄后才能下訂單哦!
今天小編給大家分享一下重寫(xiě)、覆蓋、重載、多態(tài)區(qū)別是什么的相關(guān)知識(shí)點(diǎn),內(nèi)容詳細(xì),邏輯清晰,相信大部分人都還太了解這方面的知識(shí),所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來(lái)了解一下吧。
override->重寫(xiě)(=覆蓋)
override是重寫(xiě)(覆蓋)了一個(gè)方法,以實(shí)現(xiàn)不同的功能。一般是用于子類在繼承父類時(shí),重寫(xiě)(重新實(shí)現(xiàn))父類中的方法。
重寫(xiě)(覆蓋)的規(guī)則:
1、重寫(xiě)方法的參數(shù)列表必須完全與被重寫(xiě)的方法的相同,否則不能稱其為重寫(xiě)而是重載.
2、重寫(xiě)方法的訪問(wèn)修飾符一定要大于被重寫(xiě)方法的訪問(wèn)修飾符(public>protected>default>private)。
3、重寫(xiě)的方法的返回值必須和被重寫(xiě)的方法的返回一致;
4、重寫(xiě)的方法所拋出的異常必須和被重寫(xiě)方法的所拋出的異常一致,或者是其子類;
5、被重寫(xiě)的方法不能為private,否則在其子類中只是新定義了一個(gè)方法,并沒(méi)有對(duì)其進(jìn)行重寫(xiě)。
6、靜態(tài)方法不能被重寫(xiě)為非靜態(tài)的方法(會(huì)編譯出錯(cuò))。
overload是重載,一般是用于在一個(gè)類內(nèi)實(shí)現(xiàn)若干重載的方法,這些方法的名稱相同而參數(shù)形式不同。
重載的規(guī)則:
1、在使用重載時(shí)只能通過(guò)相同的方法名、不同的參數(shù)形式實(shí)現(xiàn)。不同的參數(shù)類型可以是不同的參數(shù)類型,不同的參數(shù)個(gè)數(shù),不同的參數(shù)順序(參數(shù)類型必須不一樣);
2、不能通過(guò)訪問(wèn)權(quán)限、返回類型、拋出的異常進(jìn)行重載;
3、方法的異常類型和數(shù)目不會(huì)對(duì)重載造成影響;
多態(tài)的概念比較復(fù)雜,有多種意義的多態(tài),一個(gè)有趣但不嚴(yán)謹(jǐn)?shù)恼f(shuō)法是:繼承是子類使用父類的方法,而多態(tài)則是父類使用子類的方法。 一般,我們使用多態(tài)是為了避免在父類里大量重載引起代碼臃腫且難于維護(hù)。
舉個(gè)例子: public class Shape { public static void main(String[] args){ Triangle tri = new Triangle(); System.out.println("Triangle is a type of shape? " + tri.isShape());// 繼承 Shape shape = new Triangle(); System.out.println("My shape has " + shape.getSides() + " sides."); // 多態(tài) Rectangle Rec = new Rectangle(); Shape shape2 = Rec; System.out.println("My shape has " + shape2.getSides(Rec) + " sides."); //重載 } public boolean isShape(){return true; } public int getSides(){return 0 ; } public int getSides(Triangle tri){ //重載return 3 ; } public int getSides(Rectangle rec){ //重載return 4 ; } } class Triangle extends Shape { public int getSides() { //重寫(xiě),實(shí)現(xiàn)多態(tài)return 3; } } class Rectangle extends Shape { public int getSides(int i) { //重載return i; } }
以上就是“重寫(xiě)、覆蓋、重載、多態(tài)區(qū)別是什么”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會(huì)為大家更新不同的知識(shí),如果還想學(xué)習(xí)更多的知識(shí),請(qǐng)關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。