更新時(shí)間:2020-02-12 09:54:07 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽2524次
接口
接口和內(nèi)部類(lèi)為我們提供了一種接口和實(shí)現(xiàn)分離的更加結(jié)構(gòu)化的方法
抽象類(lèi)和抽象方法
抽象方法:僅有聲明而沒(méi)有方法體。語(yǔ)法:abstractvoidf();
抽象類(lèi):包含抽象方法的類(lèi)叫做抽象方法。如果一個(gè)類(lèi)包含一個(gè)或多個(gè)抽象方法,該類(lèi)必須被限定為抽象的。必須用abstract來(lái)關(guān)鍵字來(lái)限定為抽象的。
如果一個(gè)子類(lèi)沒(méi)有實(shí)現(xiàn)父類(lèi)的抽象方法,則子類(lèi)也是抽象方法。
1用abstract關(guān)鍵字來(lái)修飾一個(gè)類(lèi)時(shí),這個(gè)類(lèi)叫做抽象類(lèi);用abstract來(lái)修飾一個(gè)方法時(shí),該方法叫做抽象方法。
2含有抽象方法的類(lèi)必須被聲明為抽象類(lèi),抽象類(lèi)必須被繼承,抽象方法必須被重寫(xiě)。
3抽象類(lèi)不能被實(shí)例化。
4抽象方法只需聲明,而不需實(shí)現(xiàn)某些功能。
接口
接口:在JAVA編程語(yǔ)言中是一個(gè)抽象類(lèi)型,是抽象方法的集合,接口通常以interface來(lái)聲明。一個(gè)類(lèi)通過(guò)繼承接口的方式,從而來(lái)繼承接口的抽象方法。
接口與類(lèi)區(qū)別:
接口不能用于實(shí)例化對(duì)象。
接口沒(méi)有構(gòu)造方法。
接口中所有的方法必須是抽象方法。
接口不能包含成員變量,除了static和final變量。
接口不是被類(lèi)繼承了,而是要被類(lèi)實(shí)現(xiàn)。
接口支持多繼承。
接口的特點(diǎn):
1.接口可以多繼承
2.接口的方法聲明必須是publicabstract即便不寫(xiě)默認(rèn)也是
3.接口里面不能包含方法具體實(shí)現(xiàn)
4.類(lèi)實(shí)繼承接口必須實(shí)現(xiàn)接口里申明的全部方法,除非該類(lèi)是抽象類(lèi)
5.類(lèi)里面可以聲明publicstaticfinal修飾的變量
6.接口不能被實(shí)例化,但是可以被實(shí)現(xiàn)類(lèi)創(chuàng)建
什么時(shí)候使用抽象類(lèi)和接口
如果你擁有一些方法并且想讓它們中的一些有默認(rèn)實(shí)現(xiàn),那么使用抽象類(lèi)吧。
如果你想實(shí)現(xiàn)多重繼承,那么你必須使用接口。由于Java不支持多繼承,子類(lèi)不能夠繼承多個(gè)類(lèi),但可以實(shí)現(xiàn)多個(gè)接口。因此你就可以使用接口來(lái)解決它。
如果基本功能在不斷改變,那么就需要使用抽象類(lèi)。如果不斷改變基本功能并且使用接口,那么就需要改變所有實(shí)現(xiàn)了該接口的類(lèi)。
Java的多重繼承
當(dāng)一個(gè)導(dǎo)出類(lèi)組合了具體類(lèi)和接口的時(shí)候,這個(gè)具體類(lèi)必須放在前面。如果需要?jiǎng)?chuàng)建不帶任何方法定義和成員變量的基類(lèi),那么就需要選擇接口,接口可以通過(guò)繼承來(lái)擴(kuò)展接口。
打算組合的不同接口使用相同的方法名通常會(huì)造成代碼可讀性的混亂,盡量避免
接口中域
因?yàn)榉湃虢涌谥械娜魏斡蚨甲詣?dòng)是static和final的,接口成了一組很便捷的用來(lái)創(chuàng)建常量組的工具
接口中定義的域不能是空f(shuō)inal的,但是可以被常量表達(dá)式初始化。這些域不是接口的一部分,他們的值被存儲(chǔ)在該接口的靜態(tài)存儲(chǔ)域內(nèi)。
接口與抽象類(lèi)的區(qū)別
動(dòng)力節(jié)點(diǎn)Javase相關(guān)視頻免費(fèi)下載學(xué)習(xí)
Javase視頻教程【301集】:http://www.dabaquan.cn/v104/
Java視頻下載【JavaSE進(jìn)階】:http://www.dabaquan.cn/v61/
以上就是動(dòng)力節(jié)點(diǎn)Java培訓(xùn)機(jī)構(gòu)小編介紹的“Javase進(jìn)階基礎(chǔ)視頻-接口”的內(nèi)容,希望對(duì)大家有幫助,如有疑問(wèn),請(qǐng)?jiān)诰€咨詢,有專(zhuān)業(yè)老師隨時(shí)為你服務(wù)。
相關(guān)內(nèi)容
最新Java學(xué)習(xí)路線(適用于初學(xué)者)
系統(tǒng)學(xué)習(xí)Java后端開(kāi)發(fā)線路
Javase——IO流概述、特點(diǎn)及其分類(lèi)
相關(guān)閱讀
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)