java抽象類用什么來(lái)修飾方法 類和接口有什么關(guān)系?
類和接口有什么關(guān)系?設(shè)計(jì)思想不同,使用動(dòng)機(jī)不同.抽象類和接口設(shè)計(jì)的時(shí)候,設(shè)計(jì)思想不同.設(shè)計(jì)抽象類是自下而上的過(guò)程,因?yàn)檎{(diào)用者子類需要某些屬性和特有行為,所以調(diào)用者繼承抽象類設(shè)計(jì)接口是自上而下的過(guò)程,接
類和接口有什么關(guān)系?
設(shè)計(jì)思想不同,使用動(dòng)機(jī)不同.
抽象類和接口設(shè)計(jì)的時(shí)候,設(shè)計(jì)思想不同.設(shè)計(jì)抽象類是自下而上的過(guò)程,因?yàn)檎{(diào)用者子類需要某些屬性和特有行為,所以調(diào)用者繼承抽象類設(shè)計(jì)接口是自上而下的過(guò)程,接口規(guī)范某一行為,我某類需要這個(gè)行為,調(diào)用者實(shí)現(xiàn)某接口
開發(fā)者使用的時(shí)候,使用動(dòng)機(jī)不同.開發(fā)者繼承抽象類是為了使用抽象類的屬性和行為開發(fā)者實(shí)現(xiàn)接口只是為了使用接口的行為.
區(qū)別總結(jié):
區(qū)別一:抽象類只能單繼承,接口能多實(shí)現(xiàn)
區(qū)別二:抽象類是一個(gè)類,可以被任意權(quán)限修飾符修飾,靜態(tài)和非靜態(tài)屬性,final和非final屬性,可以有抽象方法和非抽象方法;
接口只能被public,final修飾,只能有靜態(tài)方法,即使沒有顯示的聲明,而且是不可修改的;
區(qū)別三:抽象的事物不同:抽象類是對(duì)類的抽象,接口是對(duì)行為的抽象;lgdt抽象類是對(duì)整個(gè)類抽象,包括屬性,行為;fpxt接口是對(duì)類的行為(局部)進(jìn)行抽象;
區(qū)別四:定義的時(shí)候,定義抽象類和接口的思想不同;lgd設(shè)計(jì)抽象類是自下而上的過(guò)程,我子類需要,所以我定義抽象類;gk設(shè)計(jì)接口是自上而下的過(guò)程,我接口規(guī)范某一行為,我某類需要這個(gè)行為,我實(shí)現(xiàn)某接口;
核心區(qū)別:
調(diào)用者使用動(dòng)機(jī)不同,實(shí)現(xiàn)接口是為了使用他規(guī)范的某一個(gè)行為;
繼承抽象類是為了使用這個(gè)類屬性和行為.
再簡(jiǎn)單點(diǎn)說(shuō):
我們知道抽象類是從子類中發(fā)現(xiàn)公共部分,然后泛化成抽象類,子類繼承該父類即可,但是接口不同。實(shí)現(xiàn)它的子類可以不存在任何關(guān)系,共同之處。例如貓、狗可以抽象成一個(gè)動(dòng)物類抽象類,具備叫的方法。鳥、戰(zhàn)斗機(jī)可以實(shí)現(xiàn)飛Fly接口,具備飛的行為,這里我們總不能將鳥、戰(zhàn)斗機(jī)共用一個(gè)父類吧!所以說(shuō)抽象類所體現(xiàn)的是一種繼承關(guān)系,要想使得繼承關(guān)系合理,父類和派生類之間必須存在
代碼四大特性?
一、抽象
父類為子類提供一些屬性和行為,子類根據(jù)業(yè)務(wù)需求實(shí)現(xiàn)具體的行為。
抽象類使用abstract進(jìn)行修飾,子類要實(shí)現(xiàn)所有的父類抽象方法否則子類也是抽象類。
二、封裝
把對(duì)象的屬性和行為(方法)結(jié)合為一個(gè)獨(dú)立的整體,并盡可能隱藏對(duì)象的內(nèi)部實(shí)現(xiàn)細(xì)節(jié);
在css中,對(duì)于對(duì)象的內(nèi)部屬性一般用private來(lái)實(shí)現(xiàn)隱藏,并通過(guò)set和get方法對(duì)外提供訪問(wèn)接口。
三、繼承
子類繼承父類的屬性和行為,并能根據(jù)自己的需求擴(kuò)展出新的屬性和行為,提高了代碼的可復(fù)用性。
c 的繼承通過(guò)extends關(guān)鍵字來(lái)實(shí)現(xiàn),實(shí)現(xiàn)繼承的類被稱為子類,被繼承的類稱為父類(有的也稱其為基類、超類),父類和子類的關(guān)系,是一種一般和特殊的關(guān)系;子類擴(kuò)展父類,將可以獲得父類的全部屬性和方法。
overide:
當(dāng)子父類中出現(xiàn)相同方法時(shí),會(huì)先運(yùn)行子類中的方法。
重寫的特點(diǎn):方法名一樣,訪問(wèn)修飾符權(quán)限不小于父類,返回類型一致,參數(shù)列表一致。
四、多態(tài)
不修改程序代碼就可以改變程序運(yùn)行時(shí)所綁定的具體代碼,讓程序可以選擇多個(gè)運(yùn)行狀態(tài);
具體的實(shí)現(xiàn)就是:接口實(shí)現(xiàn),繼承父類進(jìn)行方法重寫,同一個(gè)類中進(jìn)行方法重載。
封裝和繼承都是為Java語(yǔ)言的多態(tài)提供了支撐;多態(tài)存在的三個(gè)必要條件:
要有繼承;
要有重寫;
父類引用指向子類對(duì)象。