什么是接口?

  Java中的接口是一系列方法的聲明,是一些方法特征的集合,一個(gè)接口只有方法的特征沒(méi)有方法的 " /> 最近最新中文字幕免费高清1,在线播放成人高清免费视频,黄色影院网站

一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

Java語(yǔ)言的接口與類(lèi)型安全

接口是實(shí)現(xiàn)構(gòu)件可插入性的關(guān)鍵,可插入構(gòu)件的關(guān)鍵在于存在一個(gè)公用的接口,以及每個(gè)構(gòu)件實(shí)現(xiàn)了這個(gè)接口。

  什么是接口?

  Java中的接口是一系列方法的聲明,是一些方法特征的集合,一個(gè)接口只有方法的特征沒(méi)有方法的實(shí)現(xiàn),因此這些方法可以在不同的地方被不同的類(lèi)實(shí)現(xiàn),而這些實(shí)現(xiàn)可以具有不同的行為(功能)。

  接口的兩種含義:一,Java接口,Java語(yǔ)言中存在的結(jié)構(gòu),有特定的語(yǔ)法和結(jié)構(gòu);二,一個(gè)類(lèi)所具有的方法的特征集合,是一種邏輯上的抽象。前者叫做“Java接口”,后者叫做“接口”。

  在Java語(yǔ)言規(guī)范中,一個(gè)方法的特征僅包括方法的名字,參數(shù)的數(shù)目和種類(lèi),而不包括方法的返回類(lèi)型,參數(shù)的名字以及所拋出來(lái)的異常。在Java編譯器檢查方法的重載時(shí),會(huì)根據(jù)這些條件判斷兩個(gè)方法是否是重載方法。但在Java編譯器檢查方法的置換時(shí),則會(huì)進(jìn)一步檢查兩個(gè)方法(分處超類(lèi)型和子類(lèi)型)的返還類(lèi)型和拋出的異常是否相同。

  接口繼承和實(shí)現(xiàn)繼承的規(guī)則不同,一個(gè)類(lèi)只有一個(gè)直接父類(lèi),但可以實(shí)現(xiàn)多個(gè)接口。

  Java接口本身沒(méi)有任何實(shí)現(xiàn),因?yàn)?a href=/itjie/Javajishu/ target=_blank class=infotextkey>Java接口不涉及表象,而只描述public行為,所以Java接口比Java抽象類(lèi)更抽象化。

  Java接口的方法只能是抽象的和公開(kāi)的,Java接口不能有構(gòu)造器,Java接口可以有public,靜態(tài)的和final屬性。

  接口把方法的特征和方法的實(shí)現(xiàn)分割開(kāi)來(lái)。這種分割體現(xiàn)在接口常常代表一個(gè)角色,它包裝與該角色相關(guān)的操作和屬性,而實(shí)現(xiàn)這個(gè)接口的類(lèi)便是扮演這個(gè)角色的演員。一個(gè)角色由不同的演員來(lái)演,而不同的演員之間除了扮演一個(gè)共同的角色之外,并不要求其它的共同之處。

  為什么使用接口?

  兩個(gè)類(lèi)中的兩個(gè)類(lèi)似的功能,調(diào)用他們的類(lèi)動(dòng)態(tài)的決定一種實(shí)現(xiàn),那他們提供一個(gè)抽象父類(lèi),子類(lèi)分別實(shí)現(xiàn)父類(lèi)所定義的方法。

  問(wèn)題的出現(xiàn):Java是一種單繼承的語(yǔ)言,一般情況下,哪個(gè)具體類(lèi)可能已經(jīng)有了一個(gè)超類(lèi),解決是給它的父類(lèi)加父類(lèi),或者給它父類(lèi)的父類(lèi)加父類(lèi),只到移動(dòng)到類(lèi)等級(jí)結(jié)構(gòu)的最頂端。這樣一來(lái),對(duì)一個(gè)具體類(lèi)的可插入性的設(shè)計(jì),就變成了對(duì)整個(gè)等級(jí)結(jié)構(gòu)中所有類(lèi)的修改。

  接口是可插入性的保證。

  在一個(gè)等級(jí)結(jié)構(gòu)中的任何一個(gè)類(lèi)都可以實(shí)現(xiàn)一個(gè)接口,這個(gè)接口會(huì)影響到此類(lèi)的所有子類(lèi),但不會(huì)影響到此類(lèi)的任何超類(lèi)。此類(lèi)將不得不實(shí)現(xiàn)這個(gè)接口所規(guī)定的方法,而其子類(lèi)可以從此類(lèi)自動(dòng)繼承這些方法,當(dāng)然也可以選擇置換掉所有的這些方法,或者其中的某一些方法,這時(shí)候,這些子類(lèi)具有了可插入性(并且可以用這個(gè)接口類(lèi)型裝載,傳遞實(shí)現(xiàn)了他的所有子類(lèi))。

  我們關(guān)心的不是那一個(gè)具體的類(lèi),而是這個(gè)類(lèi)是否實(shí)現(xiàn)了我們需要的接口。

  接口提供了關(guān)聯(lián)以及方法調(diào)用上的可插入性,軟件系統(tǒng)的規(guī)模越大,生命周期越長(zhǎng),接口使得軟件系統(tǒng)的靈活性和可擴(kuò)展性,可插入性方面得到保證。

  類(lèi)型

  使用Java接口將軟件單位與內(nèi)部和外部耦合起來(lái)。使用Java接口不是具體的類(lèi)進(jìn)行變量的類(lèi)型聲明,方法的返還類(lèi)型聲明,參量的類(lèi)型聲明,以及數(shù)據(jù)類(lèi)型的轉(zhuǎn)換。

  在理想的情況下,一個(gè)具體的Java類(lèi)應(yīng)當(dāng)只實(shí)現(xiàn)Java接口和抽象Java類(lèi)中聲明的方法,而不應(yīng)當(dāng)給多余方法。

  類(lèi)型等級(jí)結(jié)構(gòu)

  Java接口(以及抽象類(lèi))一般用來(lái)作為一個(gè)類(lèi)型的等級(jí)結(jié)構(gòu)的起點(diǎn)。

  如果一個(gè)類(lèi)已經(jīng)有了一個(gè)主要的超類(lèi)型,那么通過(guò)實(shí)現(xiàn)一個(gè)接口,這個(gè)類(lèi)可以擁有另一個(gè)次要的超類(lèi)型,這種次要的超類(lèi)型叫做混合類(lèi)型。

  Java接口常用方法

  單方法接口

  public interface Actionlistener(){

  public abstract void actionPerformed(ActionEvent event);

  }

  僅且只有一個(gè)方法,只有實(shí)現(xiàn)了這個(gè)接口(重寫(xiě)這個(gè)接口中的唯一一個(gè)方法),你才有資格去事件監(jiān)聽(tīng)器列表里注冊(cè)(參數(shù)為Actionlistener類(lèi)型),當(dāng)事件源變動(dòng)時(shí),自動(dòng)調(diào)用這個(gè)唯一的actionPerformed方法.

  標(biāo)識(shí)接口

  是沒(méi)有任何方法和屬性的接口。標(biāo)識(shí)接口不對(duì)實(shí)現(xiàn)它的類(lèi)有任何語(yǔ)意上的要求,它僅僅表明了實(shí)現(xiàn)它的類(lèi)屬于一個(gè)特定的類(lèi)型(傳遞)。

  不推薦過(guò)多的使用標(biāo)識(shí)接口。

  常量接口

  用Java接口來(lái)聲明一些常量,然后由實(shí)現(xiàn)這個(gè)接口的類(lèi)使用這些常量(以前在做畫(huà)板的時(shí)候這么干過(guò))。建議不要模仿這種常量接口的做法。

  Java語(yǔ)言類(lèi)型安全問(wèn)題

  Java是強(qiáng)類(lèi)型的語(yǔ)言。這意味著Java編譯器會(huì)對(duì)代碼進(jìn)行檢查,以確定沒(méi)一次賦值,每一次方法的調(diào)用是符合類(lèi)型的。如果有任何不相符合的情況,Java編譯器就會(huì)給出錯(cuò)誤。

  類(lèi)型檢查是基于這樣一個(gè)簡(jiǎn)單的事實(shí):每一變量的聲明都給這個(gè)變量一個(gè)類(lèi)型;每一個(gè)方法包括構(gòu)造器的聲明都給這個(gè)方法的特征。這樣一來(lái),Java編譯器可以對(duì)任何的表達(dá)式推斷出一個(gè)明顯類(lèi)型,Java編譯器可以基于明顯類(lèi)型對(duì)類(lèi)型進(jìn)行檢查。

  Java語(yǔ)言是類(lèi)型安全的。這就是說(shuō),任何被Java編譯器接受的合法的Java類(lèi)保證是類(lèi)型安全的。換言之,在程序運(yùn)行期間,不會(huì)有任何類(lèi)型的錯(cuò)誤。一個(gè)Java程序根本不可能將一個(gè)本來(lái)屬于一個(gè)類(lèi)型的變量當(dāng)作另一個(gè)類(lèi)型處理,因此也就不會(huì)產(chǎn)生由此而引起的錯(cuò)誤。

  簡(jiǎn)單的說(shuō),Java語(yǔ)言依靠三種機(jī)制做到了類(lèi)型安全:編譯期間的類(lèi)型檢查,自動(dòng)的存儲(chǔ)管理,數(shù)組的邊界檢查。

  注:本篇大部分內(nèi)容出之閻宏老師的《Java與模式》。

jsp技術(shù)Java語(yǔ)言的接口與類(lèi)型安全,轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 亚洲精品综合在线 | 久久久国产一区二区三区丝袜 | 国产色婷婷 | 精品国产一区二区三区在线观看 | 2021国内精品久久久久久影院 | 激情五月激情 | 久久青青91费线频观青 | 国产一区二区色淫影院 | 女人张腿让男桶免费视频大全 | 经典国产乱子伦精品视频 | 色老板在线视频 | 欧美性满足hd1819 | 国产精品久久久久免费视频 | 国产爱搞 | 国产成人在线视频 | 国产国产成人精品久久 | 亚洲福利视频一区二区三区 | 国产在线观看人成激情视频 | 国内一级特黄女人精品毛片 | 中文字幕亚洲一区二区v@在线 | 日韩亚洲欧美一区噜噜噜 | 美女毛片在线看 | 色综合88 | 91精品国产一区二区三区左线 | 最色成人网 | 四虎影视国产永久免费 | 中文字幕精品亚洲无线码二区 | 麻豆精品密在线观看 | 亚洲欧美日韩视频一区 | 日韩一级二级三级 | 一本一本久久a久久综合精品蜜桃 | 中文字幕一区二区三区精彩视频 | 国产亚洲精品一品区99热 | 手机在线黄色 | 亚洲综合一区二区三区四区 | 美女胸免费视频网站 | 亚洲一二四区性毛片1在线 亚洲一级黄色毛片 | 伊人色综合一区二区三区 | 国产天堂视频 | 日本高清一区二区三区水蜜桃 | 国产日韩欧美综合一区二区三区 |