黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動(dòng)力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 Java接口作用及意義

Java接口作用及意義

更新時(shí)間:2020-10-15 17:26:10 來源:動(dòng)力節(jié)點(diǎn) 瀏覽1410次

Java接口是整個(gè)Java語言中重要的組成部分,Java接口實(shí)際上是一系列方法的聲明,是一些方法特征的集合,一個(gè)接口只有方法的特征沒有方法的實(shí)現(xiàn),因此這些方法可以在不同的地方被不同的類實(shí)現(xiàn),而這些實(shí)現(xiàn)可以具有不同的行為(功能)。由此看來,Java接口的存在是意義非凡的,本文我們就一起來討論Java接口作用及意義


從某種程度上來說,Java接口作用及意義可以分為以下幾點(diǎn):


1、重要性:在Java語言中, abstract class 和interface 是支持抽象類定義的兩種機(jī)制。正是由于這兩種機(jī)制的存在,才賦予了Java強(qiáng)大的面向?qū)ο竽芰Α?/p>


2、簡單、規(guī)范性:如果一個(gè)項(xiàng)目比較龐大,那么就需要一個(gè)能理清所有業(yè)務(wù)的架構(gòu)師來定義一些主要的接口,這些接口不僅告訴開發(fā)人員你需要實(shí)現(xiàn)那些業(yè)務(wù),而且也將命名規(guī)范限制住了(防止一些開發(fā)人員隨便命名導(dǎo)致別的程序員無法看明白)。


3、維護(hù)、拓展性:比如你要做一個(gè)畫板程序,其中里面有一個(gè)面板類,主要負(fù)責(zé)繪畫功能,然后你就這樣定義了這個(gè)類,可是在不久將來,你突然發(fā)現(xiàn)這個(gè)類滿足不了你了,然后你又要重新設(shè)計(jì)這個(gè)類,更糟糕是你可能要放棄這個(gè)類,那么其他地方可能有引用他,這樣修改起來很麻煩,如果你一開始定義一個(gè)接口,把繪制功能放在接口里,然后定義類時(shí)實(shí)現(xiàn)這個(gè)接口,然后你只要用這個(gè)接口去引用實(shí)現(xiàn)它的類就行了,以后要換的話只不過是引用另一個(gè)類而已,這樣就達(dá)到維護(hù)、拓展的方便性。


4、安全、嚴(yán)密性:接口是實(shí)現(xiàn)軟件松耦合的重要手段,它描敘了系統(tǒng)對外的所有服務(wù),而不涉及任何具體的實(shí)現(xiàn)細(xì)節(jié)。這樣就比較安全、嚴(yán)密一些(一般軟件服務(wù)商考慮的比較多)。


但我們?nèi)绻钊氲奶接慗ava接口存在的意義,我們就會(huì)發(fā)現(xiàn),Java接口的存在實(shí)際上是為了禁止直接為其實(shí)例化對象和打破單繼承局限即實(shí)現(xiàn)偽多重繼承。這對整個(gè)Java語言來說都是有著重大意義的。


1.禁止直接為其實(shí)例化對象

在這個(gè)點(diǎn)上,相比于抽象類,Java 對接口的限制更加嚴(yán)格了,因?yàn)榻涌谶B構(gòu)造方法都沒有,所以,根本不可能為其實(shí)例化對象。

//源碼

public interface Move {

//此時(shí)編譯器會(huì)提示 Interfaces cannot have constructors 錯(cuò)誤信息

public Move(){}

void move();

}


2.打破單繼承局限(實(shí)現(xiàn)偽多重繼承)

不支持多重繼承是Java的特性,但是Java可以實(shí)現(xiàn)多個(gè)接口,這個(gè)在某種程度上可以看做進(jìn)行多重繼承的一種辦法。所以,一個(gè)類在實(shí)現(xiàn)了多個(gè)接口之后,就可以上轉(zhuǎn)型為多個(gè)接口,即打破單繼承局限。

//源碼

public interface Fly {

void fly();

}

public interface Fight {

void fight();

}

public class SuperMan implements Fly,Fight{

@Override

public void fight() {

System.out.println("SuperMan fight");

}

@Override

public void fly() {

System.out.println("SuperMan fly");

}

}

public class MultiImplementsTest {

public static void main(String[] args) {

SuperMan sm = new SuperMan();

fly(sm);

fight(sm);

}

private static void fly(Fly f){

f.fly();

}

private static void fight(Fight f){

f.fight();

}

}

//執(zhí)行結(jié)果

SuperMan fly

SuperMan fight

由于 SuperMan 實(shí)現(xiàn)了 Fly 和 Fight 接口,所以 SuperMan 可以上轉(zhuǎn)型為 Fly 接口,也可以上轉(zhuǎn)型為 Fight 接口,即另類的“多重繼承”。


綜上所述,Java接口作用及意義主要還是在于打破Java自身單繼承的枷鎖,同時(shí)也能防止接口自身實(shí)例化對象,正如本文中的第一點(diǎn)所講的那樣,正是Java接口這一機(jī)制的存在,才賦予了Java強(qiáng)大的面向?qū)ο竽芰ΑN覀冎v了這么多,實(shí)際上對于Java接口作用及意義應(yīng)該有所了解和掌握吧,但java接口的相關(guān)知識(shí)點(diǎn)我們才剛剛起步,學(xué)習(xí)Java接口,任重而道遠(yuǎn),怎可沒有動(dòng)力節(jié)點(diǎn)的陪伴?觀看本站的Java基礎(chǔ)教程,動(dòng)力節(jié)點(diǎn)陪你一起學(xué)Java!


提交申請后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)

免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 日韩欧美在线中文字幕 | 青草青青在线视频 | 三级伦理剧 | 成人免费网站在线观看 | 男人的午夜影院 | 青青草国产97免久久费观看 | 国产午夜在线观看视频播放 | 日本福利写真福利视频 | 亚洲成a人在线播放www | 99久久丝袜腿交 | 三级伦理在线 | 亚洲成精品动漫久久精久 | 国产天堂亚洲精品 | 综合色久七七综合七七蜜芽 | 免费观看欧美性一级 | 在线播放亚洲视频 | 亚洲日本香蕉 | 成人日皮视频 | 999yy成年在线视频免费看 | 欧美乱妇高清无乱码 | 337p日本大胆欧洲色噜噜高清 | 在线国产二区 | 欧美日韩国产精品 | 欧美一区二区视频在线观看 | 欧美人与禽杂交大片 | 在线观看www | 伊人精品影院一本到欧美 | 人人澡人人插 | 黄色片日本网站 | 日日操操操 | 免费又黄又硬又爽大片 | 婷婷在线五月 | 被男人吃奶很爽的毛片两男一女 | 午夜免费 | 日本三级黄色片 | 成人欧美一区二区三区黑人免费 | 午夜精品国产爱在线观看不卡 | 二区三区不卡不卡视频 | 国产v片在线播放免费观 | 欧美一级一级做性视频 | 国产日韩一区二区三区在线播放 |