在java中,什麼事介面,介面的特點是什麼?

  • 作者:由 匿名使用者 發表于 攝影
  • 2022-09-11

在java中,什麼事介面,介面的特點是什麼?匿名使用者2022.09.04 回答

Java介面(Interface),是一系列方法的宣告,是一些方法特徵的集合,一個介面只有方法的特徵沒有方法的實現,因此這些方法可以在不同的地方被不同的類實現,而這些實現可以具有不同的行為(功能)。

一。介面含義:

1。Java介面,Java語言中存在的結構,有特定的語法和結構;2。一個類所具有的方法的特徵集合,是一種邏輯上的抽象。

前者叫做“Java介面”,後者叫做“介面”。

Java介面本身沒有任何實現,因為Java介面不涉及表象,而只描述public行為,所以Java介面比Java抽象類更抽象化。

Java介面的方法只能是抽象的和公開的,Java介面不能有構造器,Java介面可以有public,靜態的和final屬性。

二。為何用介面Java是一種單繼承的語言,若要給已有父類的具體類增加新功能,在OCP原則下,解決是給它的父類加父類,或者給它父類的父類加父類,直到移動到類等級結構的最頂端。這樣一來,對一個具體類的可插入性的設計,就變成了對整個等級結構中所有類的修改。

當有了介面,以上例子中,就不需要維護整個等級結構中的所有類了。

三。介面具胡可插入性:

在一個等級結構中的任何一個類都可以實現一個介面,這個介面會影響到此類的所有子類,但不會影響到此類的任何超類。此類將不得不實現這個介面所規定的方法,而其子類可以從此類自動繼承這些方法,當然也可以選擇置換掉所有的這些方法,或者其中的某一些方法,這時候,這些子類具有了可插入性(並且可以用這個介面型別裝載,傳遞實現了他的所有子類)。

介面提供了關聯以及方法呼叫上的可插入性,軟體系統的規模越大,生命週期越長,介面使得軟體系統的靈活性和可擴充套件性,可插入性方面得到保證。

正是有了介面,使得Java單繼承性有了新的擴充套件的可能(變向地實現多繼承);三。型別等級結構Java介面(以及抽象類)一般用來作為一個型別的等級結構的起點。

如果一個類已經有了一個主要的超型別,那麼透過實現一個介面,這個類可以擁有另一個次要的超型別,這種次要的超型別叫做混合型別。

四。Java介面分類1、普通介面(含有方法定義)public interface ActionListener{public abstract void actionPerformed(ActionEvent event);}

2、標識介面(無任何方法和屬性定義)標識介面是沒有任何方法和屬性的介面。標識介面不對實現它的類有任何語義上的要求,它僅僅表明實現它的類屬於一個特定的型別。

public interface Serializable{};3、常量介面是指用Java介面來宣告一些常量,然後由實現這個介面的類使用這些常量。

public interface AppConstants{public static final DATA_SOURCE_NAME=“test”;public static final USER_NAME=“test”;public static final PASSWORD=“test”;}

五。介面的特點1、Java介面中的成員變數預設都是public,static,final型別的(都可省略),必須被顯示初始化,即介面中的成員變數為常量(大寫,單詞之間用“_”分隔)2、Java介面中的方法預設都是public,abstract型別的(都可省略),沒有方法體,不能被例項化3、Java介面中只能包含public,static,final型別的成員變數和public,abstract型別的成員方法4、介面中沒有構造方法,不能被例項化5、一個介面不能實現(implements)另一個介面,但它可以繼承多個其它的介面6、Java介面必須透過類來實現它的抽象方法7、當類實現了某個Java介面時,它必須實現介面中的所有抽象方法,否則這個類必須宣告為抽象類8、不允許建立介面的例項(例項化),但允許定義介面型別的引用變數,該引用變數引用實現了這個介面的類的例項9、一個類只能繼承一個直接的父類,但可以實現多個介面,間接的實現了多繼承。

六。Java介面和Java抽象類區別面向物件設計的重點在於抽象。抽象類與介面都位於繼承樹的上層。

相同點:

1、代表系統的抽象層,當一個系統使用一顆繼承樹上的類時,應該儘量把引用變數宣告為繼承樹的上層抽象型別,這樣可以提高兩個系統之間的送耦合2、都不能被例項化3、都包含抽象方法,這些抽象方法用於描述系統能提供哪些服務,但不包含方法體不同點:

1、最大的一個區別,就在於Java抽象類可以提供某些方法的部分實現,而Java介面不可以;這大概就是Java抽象類唯一的優點吧,但這個優點非常有用。

可以向抽象類里加入一個新的具體方法,所有的子類都自動得到這個方法;但Java接口裡加入一個 新方法,所有實現這個介面的類就無法成功透過編譯,必需手動給每個實現了該介面的類加上該方法的實現;2、抽象類的實現只能由子類給出,也即該實現只能在抽象類定義的繼承的等級結構中;所以抽象類作為型別定義工具的效能大打折扣。

Java介面,任何一個實現了一個Java介面所規定的方法的類都可以具有這個介面的型別,而一個類可以實現任意多個Java介面,從而這個類就有了多種型別。

以上看出:Java介面是定義混合型別的理想工具,混合類表明一個類不僅僅具有某個主型別的行為,而且具有其他的次要行為。

3、結合1、2點中抽象類和Java介面的各自優勢,具精典的設計模式就出來了:

宣告型別的工作仍然由Java介面承擔,但是同時給出一個Java 抽象類,且實現了這個介面,而其他同屬於這個抽象型別的具體類可以選擇實現這個Java介面,也可以選擇繼承這個抽象類,也就是說在層次結構中,Java 介面在最上面,然後緊跟著抽象類,這下兩個的最大優點都能發揮到極至了。這個模式就是“預設適配模式”。

在Java語言API中用了這種模式,而且全都遵循一定的命名規範:Abstract +介面名。

七。使用介面和抽象類的總體原則:

1、用介面作為系統與外界互動的視窗站在外界使用者(另一個系統)的角度,介面向使用者承諾系統能提供哪些服務,站在系統本身的角度,介面制定系統必須實現哪些服務,介面是系統中最高層次的抽象型別。透過介面互動可以提高兩個系統之間的送耦合系統A透過系統B進行互動,是指系統A訪問系統B時,把引用變數宣告為系統B中的介面型別,該引用變數引用系統B中介面的實現類的例項。

public interface B { }

public class C implements B { }

public class A { B a = new C(); }

2、Java介面本身必須非常穩定,Java介面一旦制定,就不允許隨遇更加,否則對外面使用者及系統本身造成影響3、用抽象類來定製系統中的擴充套件點,抽象類來完成部分實現,還要一些功能透過它的子類來實現

在java中,什麼事介面,介面的特點是什麼?匿名使用者2012.03.13 回答

在Java語言規範中,一個方法的特徵僅包括方法的名字,引數的數目和種類,而不包括方法的返回型別,引數的名字以及所丟擲來的異常。在Java編譯器檢查方法的過載時,會根據這些條件判斷兩個方法是否是過載方法。但在Java編譯器檢查方法的置換時,則會進一步檢查兩個方法(分處超型別和子型別)的返還型別和丟擲的異常是否相同。

介面繼承和實現繼承的規則不同,一個類只有一個直接父類,但可以實現多個介面。

Java介面本身沒有任何實現,因為Java介面不涉及表象,而只描述public行為,所以Java介面比Java抽象類更抽象化。

Java介面的方法只能是抽象的和公開的,Java介面不能有構造器,Java介面可以有public,靜態的和final屬性。

介面把方法的特徵和方法的實現分割開來。這種分割體現在介面常常代表一個角色,它包裝與該角色相關的操作和屬性,而實現這個介面的類便是扮演這個角色的演員。一個角色由不同的演員來演,而不同的演員之間除了扮演一個共同的角色之外,並不要求其它的共同之處。

編輯本段為何使用介面

問題描述

兩個類中的兩個類似的功能,呼叫他們的類動態的決定一種實現,那他們提供一個抽象父類,子類分別實現父類所定義的方法。

問題的出現:Java是一種單繼承的語言,一般情況下,哪個具體類可能已經有了一個超類,解決是給它的父類加父類,或者給它父類的父類加父類,直到移動到類等級結構的最頂端。這樣一來,對一個具體類的可插入性的設計,就變成了對整個等級結構中所有類的修改。

介面是可插入性的保證

在一個等級結構中的任何一個類都可以實現一個介面,這個介面會影響到此類的所有子類,但不會影響到此類的任何超類。此類將不得不實現這個介面所規定的方法,而其子類可以從此類自動繼承這些方法,當然也可以選擇置換掉所有的這些方法,或者其中的某一些方法,這時候,這些子類具有了可插入性(並且可以用這個介面型別裝載,傳遞實現了他的所有子類)。

我們關心的不是那一個具體的類,而是這個類是否實現了我們需要的介面。

介面提供了關聯以及方法呼叫上的可插入性,軟體系統的規模越大,生命週期越長,介面使得軟體系統的靈活性和可擴充套件性,可插入性方面得到保證。

型別

使用Java介面將軟體單位與內部和外部耦合起來。使用Java介面不是具體的類進行變數的型別宣告,方法的返還型別宣告,參量的型別宣告,以及資料型別的轉換。

在理想的情況下,一個具體的Java類應當只實現Java介面和抽象Java類中宣告的方法,而不應當給多餘方法。

在java中,什麼事介面,介面的特點是什麼?匿名使用者2012.01.05 回答

http://baike。baidu。com/view/993516。htm

百度百科

在java中,什麼事介面,介面的特點是什麼?匿名使用者2012.01.05 回答

介面可以看做是標準,比如造車必須要造4個輪子,那造車接口裡面就要定義一個必須實現的造4個輪子方法,其他類如果實現這個介面就必須實現這個方法,這就是標準。

介面的特點就是實現類必須實現介面中定義的方法;

隨著一步步降低程式的依賴性和耦合性的框架發展,介面得到廣泛應用,spring就是透過ioc來注入介面的實現類達到低耦合的目的。如果更深一步瞭解介面建議多看看多型。

Top