重寫和重載的區(qū)別

1殉农、方法的重寫(Override)(方法覆蓋)

(1)重寫介紹:

java SE5增加@Override注解刀脏,并不是關鍵字,覆寫某個方法時超凳,添加此注解愈污。@Override可以防止在不想重載時而意外地進行重載危队。

  1. 父類與之類之間的多態(tài)性,對父類的函數(shù)進行重新定義钙畔。同方法名和同參數(shù);
  2. 子類中的方法與父類中的某一方法具有相同的方法名金麸、返回類型和參數(shù)列表擎析,則新方法將覆蓋原有的方法,若需要父類中原有的方法挥下,使用super關鍵字揍魂;
  3. 子類函數(shù)的訪問修飾符不能小于父類的;(父類為public棚瘟,則子類不能為protected或者private等现斋,只能是public的)
  4. 子類拋出異常小于等于父類方法拋出異常;
  5. 重寫Override偎蘸,運行時庄蹋,方法重寫(子類繼承父類并重寫方法)以及對象造型(父引用子類型對象),父子類的多態(tài)性表現(xiàn)迷雪,是動態(tài)分派限书,指令invokevirtual,在運行期間根據(jù)常量池中的類方法的符號引用解析到實際的類型上章咧;

(2)兩同兩小一大原則:

兩同:方法名相同倦西,參數(shù)類型相同
兩小:子類返回類型小于等于父類方法返回類型赁严,
   子類拋出異常小于等于父類方法拋出異常扰柠,
一大:子類訪問權限大于等于父類方法訪問權限。

  1. 參數(shù)列表必須完全與被重寫方法的相同疼约;
  2. 返回類型必須完全與被重寫方法的返回類型相同卤档;(備注:這條信息是標準的重寫方法的規(guī)則,但是在java 1.5 版本之前返回類型必須一樣,1.5(包含)j 版本之后ava放寬了限制,返回類型必須小于或者等于父類方法的返回類型 )。才有了子類返回類型小于等于父類方法返回類型忆谓。在java里面這個怎么樣都是正確的,謹記裆装。
  3. 訪問權限不能比父類中被重寫的方法的訪問權限更低。例如:如果父類的一個方法被聲明為public倡缠,那么在子類中重寫該方法就不能聲明為protected哨免。否則會有以下信息:Cannot reduce the visibility of the inherited method from Base
  4. 父類的成員方法只能被它的子類重寫。
  5. 聲明為final的方法不能被重寫昙沦。
  6. 聲明為static的方法不能被重寫琢唾,但是能夠被再次聲明。(static和final的都不能被重寫)
  7. 子類和父類在同一個包中盾饮,那么子類可以重寫父類所有方法采桃,除了聲明為private和final的方法懒熙。
  8. 子類和父類不在同一個包中,那么子類只能夠重寫父類的聲明為public和protected的非final方法普办。
  9. 重寫的方法能夠拋出任何非強制異常工扎,無論被重寫的方法是否拋出異常。但是衔蹲,重寫的方法不能拋出新的強制性異常肢娘,或者不能拋出比被重寫方法聲明的更廣泛的強制性異常,反之則可以舆驶。
  10. 構造方法不能被重寫橱健。(構造方法屬于static的)
  11. 如果不能繼承一個方法,則不能重寫這個方法沙廉。

2拘荡、方法的重載overload

(1)重載介紹

  1. 方法名一樣,但參數(shù)類型和個數(shù)一樣撬陵,返回值類型可以相同也可以不同珊皿,無法以返回類型作為重載函數(shù)的區(qū)分標準;
  2. 方法重載就是在類中創(chuàng)建多個方法巨税,方法名相同亮隙,參數(shù)列表不同,調(diào)用方法時通過傳遞給它們的不同參數(shù)個數(shù)和參數(shù)類型來決定具體使用哪個方法垢夹,體現(xiàn)多態(tài)性溢吻;
  3. 方法重載是讓類以統(tǒng)一的方法處理不同類型數(shù)據(jù)(同方法名,不同參數(shù)列表)的一種手段果元;
  4. 重載overload促王,編譯時,同一個類中而晒,同名方法有不同參數(shù)列表(個數(shù)蝇狼、類型),是一個類中多態(tài)性的表現(xiàn)倡怎,是靜態(tài)分派迅耘,在編譯期,通過靜態(tài)類型而不是實際類型作為判定依據(jù)(靜態(tài)方法也可以重載)监署;

(2)構造方法的重載

【構造方法的重載】:只需要看參數(shù)即可颤专,如果想在一個構造方法中調(diào)用另一個構造方法,那么可以使用this()的方法調(diào)用钠乏,this()括號中的參數(shù)表示目標構造方法的參數(shù)栖秕,this()必須要作為構造方法的第一跳語句,換句話說晓避,this()之前不能有任何可執(zhí)行的代碼簇捍。

3只壳、重寫和重載:(多態(tài))

底層實現(xiàn)(靜態(tài)分派和動態(tài)分派)

  1. 重載overload,編譯時暑塑,同一個類中吼句,同名方法有不同參數(shù)列表(個數(shù)、類型)事格,是一個類中多態(tài)性的表現(xiàn)命辖,是靜態(tài)分派,在編譯期分蓖,通過靜態(tài)類型而不是實際類型作為判定依據(jù)(靜態(tài)方法也可以重載);
  2. 重寫override尔许,運行時么鹤,方法重寫(子類繼承父類并重寫方法)以及對象造型(父引用子類型對象),父子類的多態(tài)性表現(xiàn)味廊,是動態(tài)分派蒸甜,指令invokevirtual,在運行期間根據(jù)常量池中的類方法的符號引用解析到實際的類型上余佛;
    多態(tài)
    1.多態(tài)性是面向?qū)ο缶幊痰囊环N特性柠新,和方法無關;
    2.同樣的一個方法能夠根據(jù)輸入數(shù)據(jù)的不同辉巡,做出不同的處理恨憎,即方法的重載——有不同的參數(shù)列表(靜態(tài)多態(tài)性);
    3.當子類繼承自父類的相同方法郊楣,輸入數(shù)據(jù)一樣憔恳,但要做出有別于父類的響應時,你就要覆蓋父類方法净蚤, 即在子類中重寫該方法——相同參數(shù)钥组,不同實現(xiàn)(動態(tài)多態(tài)性);

4今瀑、區(qū)別總結:

單詞:重載overload程梦,重寫loverride;
形式:重載橘荠,方法名相同屿附,參數(shù)列表不同(個數(shù)、類型哥童、順序)拿撩;重寫,方法名如蚜、返回值压恒、參數(shù)列表都相同影暴;
范圍:重載,是編譯時的靜態(tài)分派探赫,同一個類中型宙;重寫,運行時動態(tài)分派伦吠,發(fā)生在繼承的父子類中妆兑;
權限:重載,沒有權限限制毛仪;重寫搁嗓,子類的覆寫的方法權限不能比父類的訪問權限小箱靴;

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末腺逛,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子衡怀,更是在濱河造成了極大的恐慌棍矛,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,042評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件抛杨,死亡現(xiàn)場離奇詭異够委,居然都是意外死亡,警方通過查閱死者的電腦和手機怖现,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評論 2 384
  • 文/潘曉璐 我一進店門茁帽,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人屈嗤,你說我怎么就攤上這事脐雪。” “怎么了恢共?”我有些...
    開封第一講書人閱讀 156,674評論 0 345
  • 文/不壞的土叔 我叫張陵战秋,是天一觀的道長。 經(jīng)常有香客問我讨韭,道長脂信,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,340評論 1 283
  • 正文 為了忘掉前任透硝,我火速辦了婚禮狰闪,結果婚禮上,老公的妹妹穿的比我還像新娘濒生。我一直安慰自己埋泵,他們只是感情好,可當我...
    茶點故事閱讀 65,404評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著丽声,像睡著了一般礁蔗。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上雁社,一...
    開封第一講書人閱讀 49,749評論 1 289
  • 那天浴井,我揣著相機與錄音,去河邊找鬼霉撵。 笑死磺浙,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的徒坡。 我是一名探鬼主播撕氧,決...
    沈念sama閱讀 38,902評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼喇完!你這毒婦竟也來了伦泥?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,662評論 0 266
  • 序言:老撾萬榮一對情侶失蹤何暮,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后铐殃,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體海洼,經(jīng)...
    沈念sama閱讀 44,110評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年富腊,在試婚紗的時候發(fā)現(xiàn)自己被綠了坏逢。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,577評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡赘被,死狀恐怖是整,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情民假,我是刑警寧澤浮入,帶...
    沈念sama閱讀 34,258評論 4 328
  • 正文 年R本政府宣布,位于F島的核電站羊异,受9級特大地震影響事秀,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜野舶,卻給世界環(huán)境...
    茶點故事閱讀 39,848評論 3 312
  • 文/蒙蒙 一易迹、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧平道,春花似錦睹欲、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽袋哼。三九已至,卻和暖如春考余,著一層夾襖步出監(jiān)牢的瞬間先嬉,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評論 1 264
  • 我被黑心中介騙來泰國打工楚堤, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留疫蔓,地道東北人。 一個月前我還...
    沈念sama閱讀 46,271評論 2 360
  • 正文 我出身青樓身冬,卻偏偏與公主長得像衅胀,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子酥筝,可洞房花燭夜當晚...
    茶點故事閱讀 43,452評論 2 348

推薦閱讀更多精彩內(nèi)容

  • 首先說一下什么是重載(Overload):(1) 方法重載是讓類以統(tǒng)一的方式處理不同類型數(shù)據(jù)的一種手段滚躯。多個同名函...
    CharmingWong閱讀 485評論 0 0
  • ** 重寫(overriding)特點** 父類與子類之間的多態(tài)性,對父類的函數(shù)進行重新定義嘿歌。如果在子類中定義某方...
    StrongZhao閱讀 414評論 0 1
  • 重寫: 子類繼承父類以后掸掏,對父類中的方法中的方法體進行重新定義。 要求: 1.與父類的方法名宙帝,返回類型丧凤,參數(shù)類型均...
    Dandelions丶ky閱讀 359評論 0 0
  • 1. Java基礎部分 基礎部分的順序:基本語法,類相關的語法步脓,內(nèi)部類的語法愿待,繼承相關的語法,異常的語法靴患,線程的語...
    子非魚_t_閱讀 31,598評論 18 399
  • 重寫和重載區(qū)別 重寫方法的規(guī)則如下: 參數(shù)列表:必須與被重寫方法的參數(shù)列表完全匹配仍侥。 返回類型:必須與超類中被重寫...
    指尖的跳躍閱讀 826評論 0 2