㈠ java中的介面有什麼作用
1、定義介面的重要性:在Java編程,abstract class 和interface是支持抽象類定義的兩種機制。正是由於這兩種機制的存在,才使得Java成為面向對象的編程語言。
2、定義介面有利於代碼的規范:對於一個大型項目而言,架構師往往會對一些主要的介面來進行定義,或者清理一些沒有必要的介面。這樣做的目的一方面是為了給開發人員一個清晰的指示,告訴他們哪些業務需要實現;同時也能防止由於開發人員隨意命名而導致的命名不清晰和代碼混亂,影響開發效率。
3、有利於對代碼進行維護:比如你要做一個畫板程序,其中裡面有一個面板類,主要負責繪畫功能,然後你就這樣定義了這個類。可是在不久將來,你突然發現現有的類已經不能夠滿足需要,然後你又要重新設計這個類,更糟糕是你可能要放棄這個類,那麼其他地方可能有引用他,這樣修改起來很麻煩。如果你一開始定義一個介面,把繪制功能放在介面里,然後定義類時實現這個介面,然後你只要用這個介面去引用實現它的類就行了,以後要換的話只不過是引用另一個類而已,這樣就達到維護、拓展的方便性。
4、保證代碼的安全和嚴密:一個好的程序一定符合高內聚低耦合的特徵,那麼實現低耦合,定義介面是一個很好的方法,能夠讓系統的功能較好地實現,而不涉及任何具體的實現細節。這樣就比較安全、嚴密一些,這一思想一般在軟體開發中較為常見。
㈡ java的介面是什麼意思,介面具體能做什麼呢
java介面的用處主要體現在下面幾個方面:
(1)通過介面可以實現不相關類的相同行為,而不需要了解對象所對應的類。
(2)通過介面可以指明多個類需要實現的方法。
(3)通過介面可以了解對象的交互界面,而不需了解對象所對應的類。
類描述了一個實體,包括實體的狀態,也包括實體可能發出的動作。
介面定義了一個實體可能發出的動作。但是只是定義了這些動作的原型,沒有實現,也沒有任何狀態信息。
所以介面有點象一個規范、一個協議,是一個抽象的概念;而類則是實現了這個協議,滿足了這個規范的具體實體,是一個具體的概念。
從程序角度,簡單理解,介面就是函數聲明,類就是函數實現。需要注意的是同一個聲明可能有很多種實現。
1、介面中定義類方法的原型,但是不能說是空方法,因為空方法的意思是有實現體,只不過實現體是空操作。實際上介面沒有定義任何實現體。具體的實現體都是在實現介面的類中,介面只是定義了這些方法的調用方式。
你當然也可以不用介面,直接在類裡面寫方法,但是如果你的一組方法需要在很多類里實現,那麼把它們抽象出來,做成一個介面規范,不是更好么?
2、一個類描述了一個實體,這個實體可能是一個復雜的對象,它的動作很多,如果把這些動作分類,用介面a定義其中的某一組動作,介面b定義其中的另外一組動作,這樣的結構,比較清楚。
這種方式具備了多繼承的優點,避免了多繼承的缺陷。實際上在歷史上,介面在很大程度上,是為了解決多繼承帶來的種種問題而設計出來的。
3、包中那些已定義的介面,怎麼知道那裡面定義了什麼方法。
介面里定義了方法的輸入輸出,這些都是協議,具體的實現都在每個類中。對於很多隻需要抽象介面的地方,不需要知道具體的類是什麼,只要這個類實現了這個介面就可以了。
㈢ Java 中的介面有什麼作用
介面是java中的一大特性和一大支柱性的優點
介面用來別具體的類實現,會自動繼承介面中的抽象方法給這類繼承他的類
介面有點像是復制的意思.只不過是java中是這么寫罷了
現在已經開始"面向介面編程"時代,利用介面來解耦
介面中的方法一定都會被繼承他的類實現`,如果少繼承了或者沒有繼承`會報錯
比如說`你寫了10個類,每個類中都需要一些同名且返回值一樣的方法,這時候就可以用介面,把這些方法全部寫在一個介面中,讓這10個類去實現,這樣10個類中就有了這些方法`只需要自己具體的去填寫方法內部了
㈣ JAVA:什麼是介面,它的主要作用是什麼
java介面是一系列方法的聲明,是一些方法特徵的集合,一個介面只有方法的特徵沒有方法的實現,因此這些方法可以在不同的地方被不同的類實現,而這些實現可以具有不同的行為(功能)。
1、兩種含義:一,Java介面,Java語言中存在的結構,有特定的語法和結構;二,一個類所具有的方法的特徵集合,是一種邏輯上的抽象。前者叫做「Java介面」,後者叫做「介面」。
2、介面實現和類繼承的規則不同,為了數據的安全,繼承時一個類只有一個直接父類,也就是單繼承,但是一個類可以實現多個介面,介面彌補了類的不能多繼承缺點,繼承和介面的雙重設計既保持了類的數據安全也變相實現了多繼承。
3、Java介面本身沒有任何實現,因為Java介面不涉及表象,而只描述public行為,所以Java介面比Java抽象類更抽象化。但是介面不是類,不能使用new 運算符實例化一個介面。如 x=new comparable(......);//這個是錯誤來的。但是可以聲明介面變數Comparable x; //這是允許的。
4、Java介面的方法只能是抽象的和公開的,Java介面不能有構造器,Java介面可以有public、靜態的和final屬性。即介面中的屬性可以定義為 public static final int value=5;
5、這種分割體現在介面常常代表一個角色,它包裝與該角色相關的操作和屬性,而實現這個介面的類便是扮演這個角色的演員。一個角色由不同的演員來演,而不同的演員之間除了扮演一個共同的角色之外,並不要求其它的共同之處。
6、範例
定義介面格式:
[public]interface 介面名稱 [extends父介面名列表]
{
//靜態常量
[public] [static] [final] 數據類型變數名=常量值;
//抽象方法
[public] [abstract] [native] 返回值類型方法名(參數列表);
}
實現介面格式:
[修飾符] class 類名[extends 父類名] [implements 介面A,介面B,···]
{
類成員變數和成員方法;
為介面A中的所有方法編寫方法體,實現介面A;
為介面B中的所有方法編寫方法體,實現介面B;
}
㈤ java 的介面到底起什麼作用
下面是madai和clkrst給我的回答。 在此謝謝兩位。 我的問題是: ? 1、從書中看到的是java程序的介面中只定義了常量及空方法,空的方法有什麼用呢?還要在類中寫方法體,那還要介面干什麼? 2、一個程序中寫了2個介面,並在同一個類中寫方法體,這與多繼承有什麼關系。 3、包中那些已定義的介面,怎麼知道那裡面定義了什麼方法。 說到底,介面有什麼實際意義,哪本書都不講,一味的講是多繼承,不結合實際實在不好懂。 Madai的理解是: java介面的用處主要體現在下面幾個方面: (1)通過介面可以實現不相關類的相同行為,而不需要了解對象所對應的類。 (2)通過介面可以指明多個類需要實現的方法。 (3)通過介面可以了解對象的交互界面,而不需了解對象所對應的類。 Clkrst給出了更詳細的解釋: 類描述了一個實體,包括實體的狀態,也包括實體可能發出的動作。 介面定義了一個實體可能發出的動作。但是只是定義了這些動作的原型,沒有實現,也沒有任何狀態信息。 所以介面有點象一個規范、一個協議,是一個抽象的概念;而類則是實現了這個協議,滿足了這個規范的具體實體,是一個具體的概念。 從程序角度,簡單理解,介面就是函數聲明,類就是函數實現。需要注意的是同一個聲明可能有很多種實現。 所以就你的問題: 1、介面中定義類方法的原型,但是不能說是空方法,因為空方法的意思是有實現體,只不過實現體是空操作。實際上介面沒有定義任何實現體。具體的實現體都是在實現介面的類中,介面只是定義了這些方法的調用方式。 你當然也可以不用介面,直接在類裡面寫方法,但是如果你的一組方法需要在很多類里實現,那麼把它們抽象出來,做成一個介面規范,不是更好么? 2、一個類描述了一個實體,這個實體可能是一個復雜的對象,它的動作很多,如果把這些動作分類,用介面a定義其中的某一組動作,介面b定義其中的另外一組動作,這樣的結構,比較清楚。 這種方式具備了多繼承的優點,避免了多繼承的缺陷。實際上在歷史上,介面在很大程度上,是為了解決多繼承帶來的種種問題而設計出來的。 3、包中那些已定義的介面,怎麼知道那裡面定義了什麼方法。 介面里定義了方法的輸入輸出,這些都是協議,具體的實現都在每個類中。對於很多隻需要抽象介面的地方,不需要知道具體的類是什麼,只要這個類實現了這個介面就可以了。
㈥ 怎麼理解Java介面
1、什麼是介面
介面(interface)不是一個類,它是抽象方法的集合。一個類實現一個介面,從而繼承和實現介面的抽象方法。
介面的特點如下,先看與類類似的特點:
介面的寫法和寫一個類類似,但它們是兩個不同的概念。類描述對象的屬性和行為。介面僅僅定義了事物的行為,且不會具體化這個行為。
除非實現介面的是抽象類,不然介面中的所有方法必須在類(實現這個介面的類)中定義且實現。
介面同類一樣,可以包含任何數量的方法。
介面同類一樣,被寫在同一個.java擴展名的源文件中,文件名與介面名稱一致。
介面同類一樣,會被編譯為一個.class文件。
同類一樣,需要指定包(package),來表明介面所在的目錄結構。了解更多package看這里:package和import作用是什麼
與類不同的幾個方面:
介面不能被實例化。
介面不包含任何構造函數。
介面中的所有方法都是抽象的。
介面不包含實例欄位。但可以定義常量,使用static和final關鍵字。
類通過實現介面重寫介面的方法,而不是繼承。
介面可以繼承另一個介面。
㈦ java中的介面到底有什麼作用
什麼是介面? Java中的介面是一系列方法的聲明,是一些方法特徵的集合,一個介面只有方法的特徵沒有方法的實現,因此這些方法可以在不同的地方被不同的類實現,而這些實現可以具有不同的行為(功能)。 介面的兩種含義:一,Java介面,Java語言中存在的結構,有特定的語法和結構;二,一個類所具有的方法的特徵集合,是一種邏輯上的抽象。前者叫做「Java介面」,後者叫做「介面」。 在Java語言規范中,一個方法的特徵僅包括方法的名字,參數的數目和種類,而不包括方法的返回類型,參數的名字以及所拋出來的異常。在Java編譯器檢查方法的重載時,會根據這些條件判斷兩個方法是否是重載方法。但在Java編譯器檢查方法的置換時,則會進一步檢查兩個方法(分處超類型和子類型)的返還類型和拋出的異常是否相同。 介面繼承和實現繼承的規則不同,一個類只有一個直接父類,但可以實現多個介面。 Java介面本身沒有任何實現,因為Java介面不涉及表象,而只描述public行為,所以Java介面比Java抽象類更抽象化。 Java介面的方法只能是抽象的和公開的,Java介面不能有構造器,Java介面可以有public,靜態的和final屬性。 介面把方法的特徵和方法的實現分割開來。這種分割體現在介面常常代表一個角色,它包裝與該角色相關的操作和屬性,而實現這個介面的類便是扮演這個角色的演員。一個角色由不同的演員來演,而不同的演員之間除了扮演一個共同的角色之外,並不要求其它的共同之處。 為什麼使用介面? 兩個類中的兩個類似的功能,調用他們的類動態的決定一種實現,那他們提供一個抽象父類,子類分別實現父類所定義的方法。 問題的出現:Java是一種單繼承的語言,一般情況下,哪個具體類可能已經有了一個超類,解決是給它的父類加父類,或者給它父類的父類加父類,只到移動到類等級結構的最頂端。這樣一來,對一個具體類的可插入性的設計,就變成了對整個等級結構中所有類的修改。 介面是可插入性的保證。 在一個等級結構中的任何一個類都可以實現一個介面,這個介面會影響到此類的所有子類,但不會影響到此類的任何超類。此類將不得不實現這個介面所規定的方法,而其子類可以從此類自動繼承這些方法,當然也可以選擇置換掉所有的這些方法,或者其中的某一些方法,這時候,這些子類具有了可插入性(並且可以用這個介面類型裝載,傳遞實現了他的所有子類)。 我們關心的不是那一個具體的類,而是這個類是否實現了我們需要的介面。 介面提供了關聯以及方法調用上的可插入性,軟體系統的規模越大,生命周期越長,介面使得軟體系統的靈活性和可擴展性,可插入性方面得到保證。 類型 使用Java介面將軟體單位與內部和外部耦合起來。使用Java介面不是具體的類進行變數的類型聲明,方法的返還類型聲明,參量的類型聲明,以及數據類型的轉換。 在理想的情況下,一個具體的Java類應當只實現Java介面和抽象Java類中聲明的方法,而不應當給多餘方法。 類型等級結構 Java介面(以及抽象類)一般用來作為一個類型的等級結構的起點。 如果一個類已經有了一個主要的超類型,那麼通過實現一個介面,這個類可以擁有另一個次要的超類型,這種次要的超類型叫做混合類型。 Java介面常用方法 單方法介面 public interface Actionlistener(){ public abstract void actionPerformed(ActionEvent event); } 僅且只有一個方法,只有實現了這個介面(重寫這個介面中的唯一一個方法),你才有資格去事件監聽器列表裡注冊(參數為Actionlistener類型),當事件源變動時,自動調用這個唯一的actionPerformed方法. 標識介面 是沒有任何方法和屬性的介面。標識介面不對實現它的類有任何語意上的要求,它僅僅表明了實現它的類屬於一個特定的類型(傳遞)。 不推薦過多的使用標識介面。 常量介面 用Java介面來聲明一些常量,然後由實現這個介面的類使用這些常量(以前在做畫板的時候這么干過)。建議不要模仿這種常量介面的做法。參考資料:
㈧ Java中的介面的作用是什麼
介面的最大作用是用來劃分類的類別.比如A,B2個類都實現了同一個C介面,我們就可以說A和B都是一個類別的類(理論上這個東東有個名字,叫類屬),樓上幾位XD說的都是這個作用的實際用途呵呵.