當前位置:首頁 » 編程語言 » java介面是什麼

java介面是什麼

發布時間: 2022-11-20 23:14:32

A. java中的介面到底是什麼

Java中的介面就是一個寫好方法,但方法沒有內容的類。
如:
class
A
{

public
int
getA() ;

public
int
getB()
;
}
這個類中還可以寫更多的方法,但是不能在方法中寫內容,這就是介面,也叫做介面類。
那麼你可能會覺得,這樣的話介面有什麼作用呢?
其實,介面的作用,就好像是一張購物單。
在開發一個工程中,當不同的程序員引用了這個介面,
就代表是他領到了這個購物單。
去購物的時候,就必須要按照這個購物單去購物。
而至於,如何獲得購物單中的商品,那麼就要考不同的程序員在方法中填寫不同的內容了。

這么做的一個好處就是,一個介面,可以讓很多程序員調用,
而可以互相不幹擾的去填寫方法內容,來完成不同的任務。
並且,在不同人去完成不同事情時,保證了方法名稱的一致性。

B. JAVA中的介面是什麼請舉例子做比喻。我頭腦沒智商謝謝…

在JAVA編程語言中是一個抽象類型,是抽象方法的集合,介面通常以interface來聲明。一個類通過實現介面的方式,從而來繼承介面的抽象方法。介面無法被實例化,但是可以被實現。一個實現介面的類,必須實現介面內所描述的所有方法。
比如一輛車(介面),有換擋功能(抽象方法),加油功能,等等,改裝後(實現介面的類)變成一輛大卡車,大卡車的的加油功能變成想怎麼加就怎麼加,換擋功能改裝成了無級變速。本人智商有限,暫時理解成這個樣子。

C. JAVA中 介面是什麼 介面的回調是什麼

Java介面是一系列方法的聲明,是一些方法特徵的集合,一個介面只有方法的特徵沒有方法的實現,因此這些方法可以在不同的地方被不同的類實現,而這些實現可以具有不同的行為(功能)。
兩種含義:一,Java介面,Java語言中存在的結構,有特定的語法和結構;二,一個類所具有的方法的特徵集合,是一種邏輯上的抽象。前者叫做「Java介面」,後者叫做「介面」。

介面回調是指:可以把使用某一介面的類創建的對象的引用賦給該介面聲明的介面變數,那麼該介面變數就可以調用被類實現的介面的方法。實際上,當介面變數調用被類實現的介面中的方法時,就是通知相應的對象調用介面的方法,這一過程稱為對象功能的介面回調。看下面示例。interface People{ void peopleList();}class Student implements People{ public void peopleList(){ System.out.println("I』m a student.");}}class Teacher implements People{ public void peopleList(){ System.out.println("I』m a teacher.");}}public class Example{ public static void main(String args[]){ People a; //聲明介面變數a=new Student(); //實例化,介面變數中存放對象的引用a.peopleList(); //介面回調a=new Teacher(); //實例化,介面變數中存放對象的引用a.peopleList(); //介面回調}}結果:I』m a student.I』m a teacher.再來看看向上轉型(upcasting)的概念。

用 Java 介面實現回調函數的等價功能熟悉 MS-Windows 和 X Window System 事件驅動編程模型的開發人員,習慣於傳遞在某種事件發生時調用(即「回調」)的函數指針。Java 的面向對象模型目前並不支持方法指針,Java 的介面支持提供了一種獲得回調的等價功能的機制。其技巧就是:定義一個簡單介面,並在該介面中聲明我們要調用的方法。假定我們希望在某個事件發生時得到通知。我們可以定義一個介面:InterestingEvent.javapackage org.zj.sample;public interface InterestingEvent { public void interestingEvent ();}這使得我們可以控制實現該介面的類的任何對象。因此,我們不必關心任何外部類型信息。發出事件信號的類必須等待實現了 InterestingEvent 介面的對象,並在適當時候調用 interestingEvent() 方法。EventNotifier.javapackage org.zj.sample;public class EventNotifier { private InterestingEvent ie; private boolean somethingHappened; public EventNotifier(InterestingEvent event) { ie = event; // 保存事件對象以備後用。 somethingHappened = false; // 還沒有要報告的事件。 } public void doWork() { if (somethingHappened) { // 檢查設置的謂詞。 ie.interestingEvent();// 通過調用介面的這個方法發出事件信號。 } } public void setHappened(){//設置謂詞。 somethingHappened=true; }}在上例中,使用 somethingHappened 謂詞來跟蹤是否應觸發事件。希望接收事件通知的代碼必須實現 InterestingEvent 介面,並將自身引用傳遞給事件通知程序。CallMe.javapackage org.zj.sample;public class CallMe implements InterestingEvent { @SuppressWarnings("unused") private EventNotifier en; public CallMe() { // 注意 EventNotifier (InterestingEvent event),應該傳遞一個介面類型。 // 而下面將this,即實現了InterestingEvent介面的CallMe實例傳遞給//EventNotifier。也就是所謂的介面回調了。 en = new EventNotifier(this); // 創建事件通知程序,並將自身引用傳遞給它。 } // 為事件定義實際的處理程序。

D. java的介面是什麼意思介面具體能做什麼

java介面的用處主要體現在下面幾個方面:
(1)通過介面可以實現不相關類的相同行為,而不需要了解對象所對應的類。
(2)通過介面可以指明多個類需要實現的方法。
(3)通過介面可以了解對象的交互界面,而不需了解對象所對應的類。

類描述了一個實體,包括實體的狀態,也包括實體可能發出的動作。
介面定義了一個實體可能發出的動作。但是只是定義了這些動作的原型,沒有實現,也沒有任何狀態信息。
所以介面有點象一個規范、一個協議,是一個抽象的概念;而類則是實現了這個協議,滿足了這個規范的具體實體,是一個具體的概念。
從程序角度,簡單理解,介面就是函數聲明,類就是函數實現。需要注意的是同一個聲明可能有很多種實現。

1、介面中定義類方法的原型,但是不能說是空方法,因為空方法的意思是有實現體,只不過實現體是空操作。實際上介面沒有定義任何實現體。具體的實現體都是在實現介面的類中,介面只是定義了這些方法的調用方式。
你當然也可以不用介面,直接在類裡面寫方法,但是如果你的一組方法需要在很多類里實現,那麼把它們抽象出來,做成一個介面規范,不是更好么?
2、一個類描述了一個實體,這個實體可能是一個復雜的對象,它的動作很多,如果把這些動作分類,用介面a定義其中的某一組動作,介面b定義其中的另外一組動作,這樣的結構,比較清楚。
這種方式具備了多繼承的優點,避免了多繼承的缺陷。實際上在歷史上,介面在很大程度上,是為了解決多繼承帶來的種種問題而設計出來的。
3、包中那些已定義的介面,怎麼知道那裡面定義了什麼方法。
介面里定義了方法的輸入輸出,這些都是協議,具體的實現都在每個類中。對於很多隻需要抽象介面的地方,不需要知道具體的類是什麼,只要這個類實現了這個介面就可以了。

E. java的介面是什麼意思介面具體能做什麼

java介面的用處主要體現在下面幾個方面: x0dx0a(1)通過介面可以實現不相關類的相同行為,而不需要了解對象所對應的類。 x0dx0a(2)通過介面可以指明多個類需要實現的方法。 x0dx0a(3)通過介面可以了解對象的交互界面,而不需了解對象所對應的類。x0dx0a x0dx0a類描述了一個實體,包括實體的狀態,也包括實體可能發出的動作。 x0dx0a介面定義了一個實體可能發出的動作。但是只是定義了這些動作的原型,沒有實現,也沒有任何狀態信息。 x0dx0a所以介面有點象一個規范、一個協議,是一個抽象的概念;而類則是實現了這個協議,滿足了這個規范的具體實體,是一個具體的概念。 x0dx0a從程序角度,簡單理解,介面就是函數聲明,類就是函數實現。需要注意的是同一個聲明可能有很多種實現。x0dx0ax0dx0a1、介面中定義類方法的原型,但是不能說是空方法,因為空方法的意思是有實現體,只不過實現體是空操作。實際上介面沒有定義任何實現體。具體的實現體都是在實現介面的類中,介面只是定義了這些方法的調用方式。 x0dx0a你當然也可以不用介面,直接在類裡面寫方法,但是如果你的一組方法需要在很多類里實現,那麼把它們抽象出來,做成一個介面規范,不是更好么? x0dx0a2、一個類描述了一個實體,這個實體可能是一個復雜的對象,它的動作很多,如果把這些動作分類,用介面a定義其中的某一組動作,介面b定義其中的另外一組動作,這樣的結構,比較清楚。 x0dx0a這種方式具備了多繼承的優點,避免了多繼承的缺陷。實際上在歷史上,介面在很大程度上,是為了解決多繼承帶來的種種問題而設計出來的。 x0dx0a3、包中那些已定義的介面,怎麼知道那裡面定義了什麼方法。 x0dx0a介面里定義了方法的輸入輸出,這些都是協議,具體的實現都在每個類中。對於很多隻需要抽象介面的地方,不需要知道具體的類是什麼,只要這個類實現了這個介面就可以了。

F. JAVA 介面是什麼

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

介面作用如下:

1、豐富Java面向對象的思想:在Java語言中, abstract class 和interface 是支持抽象類定義的兩種機制。正是由於這兩種機制的存在,才賦予了Java強大的面向對象能力。

2、提供簡單、規范性:如果一個項目比較龐大,那麼就需要一個能理清所有業務的架構師來定義一些主要的介面,這些介面不僅告訴開發人員你需要實現那些業務,而且也將命名規范限制住了(防止一些開發人員隨便命名導致別的程序員無法看明白)。

3、提高維護、拓展性:比如你要做一個畫板程序,其中裡面有一個面板類,主要負責繪畫功能,然後你就這樣定義了這個類,可是在不久將來,你突然發現這個類滿足不了你了,然後你又要重新設計這個類,更糟糕是你可能要放棄這個類,那麼其他地方可能有引用他,這樣修改起來很麻煩,如果你一開始定義一個介面,把繪制功能放在介面里,然後定義類時實現這個介面,然後你只要用這個介面去引用實現它的類就行了,以後要換的話只不過是引用另一個類而已,這樣就達到維護、拓展的方便性。

4、增強安全、嚴密性:介面是實現軟體松耦合的重要手段,它描敘了系統對外的所有服務,而不涉及任何具體的實現細節。這樣就比較安全、嚴密一些(一般軟體服務商考慮的比較多)。

(6)java介面是什麼擴展閱讀:

關於介面的使用規范:

1、介面中可以定義常量,不能定義變數,如果你在介面中定義屬性,那麼通過反編譯可以看見他會自動用public static final 修飾,介面中的屬性都是全局靜態常量,介面中的常量必須在定義時指定初始值。

2、 介面中所有的方法都是抽象方法,介面中方法都會自動用public abstract 修飾,即介面中只有全局抽象方法。

3、 介面不能實例化,介面中不能有構造。

4、 介面之間可以通過extends實現繼承關系,一個介面可以繼承多個介面,但介面不能繼承類。

G. 怎麼理解Java介面

1、什麼是介面

介面(interface)不是一個類,它是抽象方法的集合。一個類實現一個介面,從而繼承和實現介面的抽象方法。

介面的特點如下,先看與類類似的特點:

  • 介面的寫法和寫一個類類似,但它們是兩個不同的概念。類描述對象的屬性和行為。介面僅僅定義了事物的行為,且不會具體化這個行為。

  • 除非實現介面的是抽象類,不然介面中的所有方法必須在類(實現這個介面的類)中定義且實現。

  • 介面同類一樣,可以包含任何數量的方法。

  • 介面同類一樣,被寫在同一個.java擴展名的源文件中,文件名與介面名稱一致。

  • 介面同類一樣,會被編譯為一個.class文件。

  • 同類一樣,需要指定包(package),來表明介面所在的目錄結構。了解更多package看這里:package和import作用是什麼

  • 與類不同的幾個方面:

  • 介面不能被實例化。

  • 介面不包含任何構造函數。

  • 介面中的所有方法都是抽象的。

  • 介面不包含實例欄位。但可以定義常量,使用static和final關鍵字。

  • 類通過實現介面重寫介面的方法,而不是繼承。

  • 介面可以繼承另一個介面。

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

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、用抽象類來定製系統中的擴展點,抽象類來完成部分實現,還要一些功能通過它的子類來實現

I. java中介面是什麼意思

介面可以說是為了提供一種規范,方便其他地方使用此規范的一種技術。
在現實生活中可以介面的例子很多,比如USB介面。它定義了USB口的大小,4跟USB線每根線的顏色、作用等。在軟體方面定義了供CPU調用的一些方法。比如識別、啟動、彈出、傳送數據等等。採用USB介面的設備很多,有滑鼠、鍵盤、u盤等等。每種設備實現識別、啟動、彈出、傳送數據的方式不一樣。

在java中,介面定義了一些方法,但是不用去實現,而由實現了此介面的類去實現介面中定義的方法,比如有一個介面叫做USB,有一個類叫做滑鼠,USB介面定義了啟動、傳送數據等方法。那麼滑鼠實現了USB介面,就得實現啟動、傳送數據方法。另外一個類叫做U盤也實現了USB介面、那麼它也要實現啟動、傳送數據。 在滑鼠或者U盤連接上電腦後,CPU發現有USB設備連接上電腦了(cpu並不知道是什麼設備,只知道是USB設備),這個時候CPU會發出啟動命令來啟動USB設備,而啟動滑鼠和啟動U盤具體流程是不一樣的,這些啟動流程都是有滑鼠和U盤各自來實現的。

希望對你的理解有幫助

J. java的介面是什麼

介面(Interface)是對符合介面需求的類的一套規范

介面主要作用是可以幫助實現類似於類的多重繼承的功能。

語法如圖

一個Java介面是一些方法特徵的集合,但沒有方法的實現

介面是由常量和抽象方法組成的特殊類

-------------------------------------------------------------

介面的定義

介面的定義包括介面聲明和介面體

介面體包括常量定義和方法定義

-------------------------------------------------------------

介面的實現

在類的聲明中用implements子句來表示一個類使用某個介面

在類體中可以使用介面中定義的常量,而且必須實現介面中定義的所有方法

一個類可以實現多個介面,在implements子句中用逗號分開

----------------------------------------------------------------

介面類型的使用

介面作為一種引用類型來使用

任何實現該介面的類的實例都可以存儲在該介面類型的變數中,通過這些變數可以訪問類所實現的介面中的方法

-------------------------------------------------

介面的特性:

介面可以多重實現

介面可以繼承其它的介面,並添加新的屬性和抽象方法

通過介面可以實現不相關類的相同行為,而不需要考慮這些類之間的層次關系。

通過介面可以指明多個類需要實現的方法。

通過介面可以了解對象的交互界面,而不需了解對象所對應的類

與繼承關系類似,介面與實現類之間存在多態性

熱點內容
我的世界電腦版進pe伺服器 發布:2025-01-15 21:33:57 瀏覽:293
網頁游戲吃什麼配置 發布:2025-01-15 21:27:58 瀏覽:64
安卓怎麼轉移數據華為 發布:2025-01-15 21:03:02 瀏覽:140
軟體列印反饋單腳本錯誤 發布:2025-01-15 21:01:24 瀏覽:177
如何進cs里的練槍伺服器 發布:2025-01-15 21:00:07 瀏覽:979
蘋果手機存儲晶元 發布:2025-01-15 20:52:02 瀏覽:162
盲人讀屏軟體安卓哪個好 發布:2025-01-15 20:47:13 瀏覽:728
炸圖腳本 發布:2025-01-15 19:56:07 瀏覽:429
八字源碼 發布:2025-01-15 19:54:47 瀏覽:372
伺服器可以變電腦使用嗎 發布:2025-01-15 19:40:29 瀏覽:202