日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 综合教程 >内容正文

综合教程

java之接口

發(fā)布時(shí)間:2024/5/24 综合教程 29 生活家
生活随笔 收集整理的這篇文章主要介紹了 java之接口 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
Java接口(Interface),是一系列方法的聲明,是一些方法特征的集合一個(gè)接口只有方法的特征沒有方法的實(shí)現(xiàn),接口就是java提供的一個(gè)面向?qū)ο蟮臋C(jī)制(就好比抽象方法和常量值的定義的集合,申明方法和類的申明方法差不多.

<修飾符>interface<接口名>{
[<常量申明>]
[<抽象方法申明>]
}
接口是類型轉(zhuǎn)換的前提、是動(dòng)態(tài)調(diào)用的保證。實(shí)現(xiàn)某一接口就完成了類型的轉(zhuǎn)換(多重繼承);動(dòng)態(tài)調(diào)用只關(guān)心類型,不關(guān)心具體類。

同時(shí)接口中所有的方法都是抽象方法,而且接口中的方法都默認(rèn)是public,abstract的,所以可以省略2個(gè)修飾符,但是正因?yàn)槿绱?不能使用和public,abstract有沖突的方法標(biāo)示,在接口中也可以申明常量,但是不能申明實(shí)例變量.
java中的繼承只能支持單一繼承,所以.接口的提供為我們實(shí)現(xiàn)多繼承提供了路徑,這么理解就很方便了,,因此這些方法可以在不同的地方被不同的類實(shí)現(xiàn),而這些實(shí)現(xiàn)可以具有不同的行為(功能)。

一.接口含義:

1.Java接口,Java語(yǔ)言中存在的結(jié)構(gòu),有特定的語(yǔ)法和結(jié)構(gòu);2.一個(gè)類所具有的方法的特征集合,是一種邏輯上的抽象。

前者叫做“Java接口”,后者叫做“接口”。

Java接口本身沒有任何實(shí)現(xiàn),因?yàn)镴ava接口不涉及表象,而只描述public行為,所以Java接口比Java抽象類更抽象化。
Java接口的方法只能是抽象的和公開的,Java接口不能有構(gòu)造器,Java接口可以有public,靜態(tài)的和final屬性。
二.為何用接口Java是一種單繼承的語(yǔ)言,若要給已有父類的具體類增加新功能,在OCP原則下,解決是給它的父類加父類,或者給它父類的父類加父類,直到移動(dòng)到類等級(jí)結(jié)構(gòu)的最頂端。這樣一來,對(duì)一個(gè)具體類的可插入性的設(shè)計(jì),就變成了對(duì)整個(gè)等級(jí)結(jié)構(gòu)中所有類的修改。
當(dāng)有了接口,以上例子中,就不需要維護(hù)整個(gè)等級(jí)結(jié)構(gòu)中的所有類了.
三.接口具胡可插入性:
在一個(gè)等級(jí)結(jié)構(gòu)中的任何一個(gè)類都可以實(shí)現(xiàn)一個(gè)接口,這個(gè)接口會(huì)影響到此類的所有子類,但不會(huì)影響到此類的任何超類。此類將不得不實(shí)現(xiàn)這個(gè)接口所規(guī)定的方法,而其子類可以從此類自動(dòng)繼承這些方法,當(dāng)然也可以選擇置換掉所有的這些方法,或者其中的某一些方法,這時(shí)候,這些子類具有了可插入性(并且可以用這個(gè)接口類型裝載,傳遞實(shí)現(xiàn)了他的所有子類)。
接口提供了關(guān)聯(lián)以及方法調(diào)用上的可插入性,軟件系統(tǒng)的規(guī)模越大,生命周期越長(zhǎng),接口使得軟件系統(tǒng)的靈活性和可擴(kuò)展性,可插入性方面得到保證。
正是有了接口,使得Java單繼承性有了新的擴(kuò)展的可能(變向地實(shí)現(xiàn)多繼承);三.類型等級(jí)結(jié)構(gòu)Java接口(以及抽象類)一般用來作為一個(gè)類型的等級(jí)結(jié)構(gòu)的起點(diǎn)。
如果一個(gè)類已經(jīng)有了一個(gè)主要的超類型,那么通過實(shí)現(xiàn)一個(gè)接口,這個(gè)類可以擁有另一個(gè)次要的超類型,這種次要的超類型叫做混合類型。
四.Java接口分類1、普通接口(含有方法定義)public interface ActionListener{public abstract void actionPerformed(ActionEvent event);}
2、標(biāo)識(shí)接口(無任何方法和屬性定義)標(biāo)識(shí)接口是沒有任何方法和屬性的接口.標(biāo)識(shí)接口不對(duì)實(shí)現(xiàn)它的類有任何語(yǔ)義上的要求,它僅僅表明實(shí)現(xiàn)它的類屬于一個(gè)特定的類型。
public interface Serializable{};3、常量接口是指用Java接口來聲明一些常量,然后由實(shí)現(xiàn)這個(gè)接口的類使用這些常量。
public interface AppConstants{public static final DATA_SOURCE_NAME="test";public static final USER_NAME="test";public static final PASSWORD="test";}
五.接口的特點(diǎn)1、Java接口中的成員變量默認(rèn)都是public,static,final類型的(都可省略),必須被顯示初始化,即接口中的成員變量為常量(大寫,單詞之間用"_"分隔)

2、Java接口中的方法默認(rèn)都是public,abstract類型的(都可省略),沒有方法體,不能被實(shí)例化
3、Java接口中只能包含public,static,final類型的成員變量和public,abstract類型的成員方法
4、接口中沒有構(gòu)造方法,不能被實(shí)例化
5、一個(gè)接口不能實(shí)現(xiàn)(implements)另一個(gè)接口,但它可以繼承多個(gè)其它的接口
6、Java接口必須通過類來實(shí)現(xiàn)它的抽象方法
7、當(dāng)類實(shí)現(xiàn)了某個(gè)Java接口時(shí),它必須實(shí)現(xiàn)接口中的所有抽象方法,否則這個(gè)類必須聲明為抽象類
8、不允許創(chuàng)建接口的實(shí)例(實(shí)例化),但允許定義接口類型的引用變量,該引用變量引用實(shí)現(xiàn)了這個(gè)接口的類的實(shí)例
9、一個(gè)類只能繼承一個(gè)直接的父類,但可以實(shí)現(xiàn)多個(gè)接口,間接的實(shí)現(xiàn)了多繼承.

10、就是實(shí)現(xiàn)類必須實(shí)現(xiàn)接口中定義的方法;

六.Java接口和Java抽象類區(qū)別面向?qū)ο笤O(shè)計(jì)的重點(diǎn)在于抽象。抽象類與接口都位于繼承樹的上層。

相同點(diǎn):

1、代表系統(tǒng)的抽象層,當(dāng)一個(gè)系統(tǒng)使用一顆繼承樹上的類時(shí),應(yīng)該盡量把引用變量聲明為繼承樹的上層抽象類型,這樣可以提高兩個(gè)系統(tǒng)之間的送耦合

2、都不能被實(shí)例化

3、都包含抽象方法,這些抽象方法用于描述系統(tǒng)能提供哪些服務(wù),但不包含方法體不同點(diǎn):
1、最大的一個(gè)區(qū)別,就在于Java抽象類可以提供某些方法的部分實(shí)現(xiàn),而Java接口不可以;這大概就是Java抽象類唯一的優(yōu)點(diǎn)吧,但這個(gè)優(yōu)點(diǎn)非常有用。
可以向抽象類里加入一個(gè)新的具體方法,所有的子類都自動(dòng)得到這個(gè)方法;但Java接口里加入一個(gè) 新方法,所有實(shí)現(xiàn)這個(gè)接口的類就無法成功通過編譯,必需手動(dòng)給每個(gè)實(shí)現(xiàn)了該接口的類加上該方法的實(shí)現(xiàn);2、抽象類的實(shí)現(xiàn)只能由子類給出,也即該實(shí)現(xiàn)只能在抽象類定義的繼承的等級(jí)結(jié)構(gòu)中;所以抽象類作為類型定義工具的效能大打折扣。
Java接口,任何一個(gè)實(shí)現(xiàn)了一個(gè)Java接口所規(guī)定的方法的類都可以具有這個(gè)接口的類型,而一個(gè)類可以實(shí)現(xiàn)任意多個(gè)Java接口,從而這個(gè)類就有了多種類型。
以上看出:Java接口是定義混合類型的理想工具,混合類表明一個(gè)類不僅僅具有某個(gè)主類型的行為,而且具有其他的次要行為。
3、結(jié)合1、2點(diǎn)中抽象類和Java接口的各自優(yōu)勢(shì),具精典的設(shè)計(jì)模式就出來了:
聲明類型的工作仍然由Java接口承擔(dān),但是同時(shí)給出一個(gè)Java 抽象類,且實(shí)現(xiàn)了這個(gè)接口,而其他同屬于這個(gè)抽象類型的具體類可以選擇實(shí)現(xiàn)這個(gè)Java接口,也可以選擇繼承這個(gè)抽象類,也就是說在層次結(jié)構(gòu)中,Java 接口在最上面,然后緊跟著抽象類,這下兩個(gè)的最大優(yōu)點(diǎn)都能發(fā)揮到極至了。這個(gè)模式就是“缺省適配模式”。
在Java語(yǔ)言API中用了這種模式,而且全都遵循一定的命名規(guī)范:Abstract +接口名。
七.使用接口和抽象類的總體原則:
1、用接口作為系統(tǒng)與外界交互的窗口站在外界使用者(另一個(gè)系統(tǒng))的角度,接口向使用者承諾系統(tǒng)能提供哪些服務(wù),站在系統(tǒng)本身的角度,接口制定系統(tǒng)必須實(shí)現(xiàn)哪些服務(wù),接口是系統(tǒng)中最高層次的抽象類型.通過接口交互可以提高兩個(gè)系統(tǒng)之間的送耦合系統(tǒng)A通過系統(tǒng)B進(jìn)行交互,是指系統(tǒng)A訪問系統(tǒng)B時(shí),把引用變量聲明為系統(tǒng)B中的接口類型,該引用變量引用系統(tǒng)B中接口的實(shí)現(xiàn)類的實(shí)例。
public interface B { }
public class C implements B { }
public class A { B a = new C(); }
2、Java接口本身必須非常穩(wěn)定,Java接口一旦制定,就不允許隨遇更加,否則對(duì)外面使用者及系統(tǒng)本身造成影響3、用抽象類來定制系統(tǒng)中的擴(kuò)展點(diǎn),抽象類來完成部分實(shí)現(xiàn),還要一些功能通過它的子類來實(shí)現(xiàn)

總結(jié)

以上是生活随笔為你收集整理的java之接口的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 精品熟妇视频一区二区三区 | 婷婷影音 | 日韩免费网站 | 精品三级| 中国毛片视频 | 丰满人妻中伦妇伦精品app | 最新日韩视频 | 午夜免费福利在线 | 色亚洲视频 | 九九热视 | 欧美日韩精品一区二区在线观看 | 欧美熟妇7777一区二区 | 91高跟黑色丝袜呻吟动态图 | 午夜免费成人 | 老外一级黄色片 | 四虎网址在线 | 亚洲少妇自拍 | 狠狠操很很干 | 五月婷婷视频 | 成人午夜免费毛片 | 秋霞国产午夜精品免费视频 | 全部免费毛片在线播放一个 | 日本aⅴ在线观看 | 观看毛片 | 免费av观看网址 | 成人动漫视频在线观看 | 黄色在线观看视频网站 | 欧美一级淫片免费视频黄 | 九色在线 | 少妇情理伦片丰满午夜在线观看 | av男女 | yy1111111| 伦理片av| 伊人国产一区 | 久久艹精品视频 | 激情五月综合色婷婷一区二区 | av播放网站 | 无码精品国产一区二区三区 | 一区二区三区精彩视频 | 黄色在线免费 | 男女免费观看视频 | 好色先生视频污 | 亚洲欧美综合一区 | 久久机热 | 亚洲第一激情 | 欧洲色网 | 美女看片 | 无码精品在线视频 | 蜜桃av在线 | 新婚之夜玷污岳丰满少妇在线观看 | 国产区亚洲区 | 星铁乱淫h侵犯h文 | 韩国成人理伦片免费播放 | 处破女av一区二区 | 97在线超碰 | 长腿校花无力呻吟娇喘的视频 | 97超碰人人草| 青青艹在线观看 | xxxwww在线观看 | 久久99热精品 | 天天做夜夜做 | 精品国偷自产国产一区 | 日韩中文字幕2019 | 欧美人妻精品一区二区免费看 | 国产日韩免费 | 天堂va欧美va亚洲va老司机 | 国产福利视频在线观看 | 邻家有女4完整版电影观看 欧美偷拍另类 | 青娱乐国产 | 波多野吉衣视频在线观看 | 综合久久精品 | 日韩一区二区视频 | 日本一级片在线观看 | 熟女少妇a性色生活片毛片 亚洲伊人成人网 | 男人天堂一区二区 | 波多野吉衣一区二区三区 | 精品久久久久久久久久久国产字幕 | 中文字幕亚洲激情 | 国产91一区在线精品 | 99热官网| 奇米影视第四色777 波多野结衣一区二区三区免费视频 | 一边顶弄一边接吻 | 日韩精品卡通动漫网站 | 午夜精品视频一区 | 亚洲av成人无码久久精品 | 成人99| 一级全黄毛片 | 午夜激情啪啪 | 国产一区二区三区视频在线播放 | 午夜激情视频在线 | 色欧美亚洲 | 免费在线日本 | 奇米影视7777 | 国内毛片毛片毛片 | 黄色岛国片| 国语对白少妇spa私密按摩 | 一区二区三区免费视频观看 | 日韩美一级片 | www日本www|