如果只是單個的類繼承單個的接口的話 那肯定沒啥意義
但是多個類同時繼承一個接口的話那就不一樣了
這也是"接口"這個為什么叫名字的原因
本來不相關(guān)的兩個類繼承了同一接口的話 這兩個類就能產(chǎn)生關(guān)聯(lián).通過這個關(guān)聯(lián)你能實現(xiàn)好多特別的效果 建議你去看看設(shè)計模式 里邊有好多模式都是根據(jù)這條設(shè)計的
接口還有一個好處是: Java語言不支持一個類有多個直接的父類(多繼承),但可以實現(xiàn)(implements)多個接口,間接的實現(xiàn)了多繼承.
接口也可以實現(xiàn)封裝,調(diào)用者只要調(diào)用接口,而無需關(guān)注它怎么實現(xiàn)等問題
重寫一般用于繼承體現(xiàn)多態(tài)應(yīng)為我們經(jīng)常會設(shè)計一個抽象類來而且確定其基本方法,如person類有work(){sysout.println("做自己的工作")}方法,那么他的copy子類teacher 類,默認(rèn)就有了這個方法但是他的work()方法內(nèi)容應(yīng)該具體些所以重百寫work(){sysout.println("沒事干,教書去")}當(dāng)然這樣設(shè)計不太好反正就是這個意思嘛。
方法重載就像在teacher類里面有個eat(String str){sysout.println("我要吃"+str)}還有個eat(){sysout.println("我要吃飯")}。反正這個意思, 至于語法相同點(diǎn)不管重寫還是重度載方法名都是相同的,區(qū)別忘了呵呵。
題主完全無視什么是面向?qū)ο?,什么是多態(tài),建議題主還是好好回歸課本。
可能題主有點(diǎn)兒 C 語言的底子,一頭栽在面向過程的坑里還沒出來。
而且題主有一個最重要的誤區(qū),認(rèn)為重寫比另定義方法是“偷懶”,其實后者才是明顯的偷懶??搭}主應(yīng)該是學(xué)生,沒接觸過什么真正的項目,要知道在真正的項目里各個類內(nèi)部的邏輯與類之間的關(guān)系的設(shè)計是十分復(fù)雜的,能找出若干個類之間的聯(lián)系并抽出接口和抽象類的工作量明顯要比隨心所欲的讓各個類之間“各自為戰(zhàn)”困難的多,怎么在題主眼里變成是“偷懶”了?
那么問題來了,既然多態(tài)這么費(fèi)事兒,干嘛要用多態(tài)?因為多態(tài)雖然說在前期設(shè)計上很費(fèi)事兒(這就是為什么架構(gòu)設(shè)計師比碼農(nóng)工資高的緣故)最重要的好處就是后期維!護(hù)!擴(kuò)!展!方!便!要知道實際開發(fā)中沒有一個項目編碼完成后就不需要維護(hù)了的。
聲明:本網(wǎng)站尊重并保護(hù)知識產(chǎn)權(quán),根據(jù)《信息網(wǎng)絡(luò)傳播權(quán)保護(hù)條例》,如果我們轉(zhuǎn)載的作品侵犯了您的權(quán)利,請在一個月內(nèi)通知我們,我們會及時刪除。
蜀ICP備2020033479號-4 Copyright ? 2016 學(xué)習(xí)鳥. 頁面生成時間:3.115秒