两个吃奶一个添下面视频_人妻第一页香蕉网_欧美xxxx少妇_妺妺窝人体色www婷婷

1. Java接口與抽象類(lèi)的比較

(1) abstract(抽象)類(lèi)和接口都可以有abstract(抽象)方法。

(2) 接口中只可以有常量,不能有變量,而abstract類(lèi)中既可以有常量也可以有變量。

(3) abstract類(lèi)中也可以有非abstract方法,接口不可以。


在設(shè)計(jì)程序時(shí)應(yīng)當(dāng)根據(jù)具體的分析來(lái)確定是使用抽象類(lèi)還是接口。abstract類(lèi)除了提供重要的需要子類(lèi)重寫(xiě)的abstract方法以外,還提供了子類(lèi)可以繼承的變量和非abstract方法。


如果某個(gè)問(wèn)題需要使用繼承才能更好地解決,比如:子類(lèi)除了需要重寫(xiě)父類(lèi)的abstract方法以外,還需要從父類(lèi)繼承一些變量或繼承一些重要的非abstract方法,就可以考慮用abstract類(lèi)。如果某個(gè)問(wèn)題不需要繼承,只是需要若干個(gè)類(lèi)給出某些重要的abstract方法的實(shí)現(xiàn)細(xì)節(jié),就可以考慮使用接口。

注意:JDK1.8接口支持靜態(tài)方法和默認(rèn)方法。


2. JDK1.8之前接口的定義和限制

1)接口不能用于實(shí)例化對(duì)象。

2)接口沒(méi)有構(gòu)造方法。

3)接口中所有的方法必須是抽象方法。

4)接口不能包含成員變量,除了static和final變量。

5)接口不是被類(lèi)繼承,而是要被類(lèi)實(shí)現(xiàn)。

6)接口支持多繼承。


默認(rèn)方法就是接口可以有實(shí)現(xiàn)方法且不需要實(shí)現(xiàn)類(lèi)去實(shí)現(xiàn)其方法,只需要在方法名前面加上default關(guān)鍵字即可實(shí)現(xiàn)默認(rèn)方法。默認(rèn)方法提供了一種擴(kuò)展接口的方法,而且還不會(huì)破壞現(xiàn)有代碼。


3. 注意事項(xiàng)

(1) 接口默認(rèn)方法、靜態(tài)方法可以有多個(gè)。

(2) 默認(rèn)方法通過(guò)實(shí)例調(diào)用,靜態(tài)方法通過(guò)接口名調(diào)用。

(3) default關(guān)鍵字只能用在接口中。

(4) 默認(rèn)方法可以被繼承,如果繼承多個(gè)接口,多個(gè)接口都定義多個(gè)同樣的默認(rèn)方法,實(shí)現(xiàn)類(lèi)需要重寫(xiě)默認(rèn)方法,不然會(huì)報(bào)錯(cuò)。

(5) 靜態(tài)方法不能被繼承和覆蓋,所以只能被具體所在的接口調(diào)用。

注意:JDK1.9以后,允許將方法定義為private,使得某些復(fù)用的代碼不會(huì)把方法暴露出去。


點(diǎn)贊(0)

C語(yǔ)言網(wǎng)提供由在職研發(fā)工程師或ACM藍(lán)橋杯競(jìng)賽優(yōu)秀選手錄制的視頻教程,并配有習(xí)題和答疑,點(diǎn)擊了解:

一點(diǎn)編程也不會(huì)寫(xiě)的:零基礎(chǔ)C語(yǔ)言學(xué)練課程

解決困擾你多年的C語(yǔ)言疑難雜癥特性的C語(yǔ)言進(jìn)階課程

從零到寫(xiě)出一個(gè)爬蟲(chóng)的Python編程課程

只會(huì)語(yǔ)法寫(xiě)不出代碼?手把手帶你寫(xiě)100個(gè)編程真題的編程百練課程

信息學(xué)奧賽或C++選手的 必學(xué)C++課程

藍(lán)橋杯ACM、信息學(xué)奧賽的必學(xué)課程:算法競(jìng)賽課入門(mén)課程

手把手講解近五年真題的藍(lán)橋杯輔導(dǎo)課程

Dotcpp在線編譯      (登錄可減少運(yùn)行等待時(shí)間)