java介面規范
A. java 介面
介面(interface)用來定義一種程序的協定。實現介面的類或者結構要與介面的定義嚴格一致。有了這個協定,就可以拋開編程語言的限制(理論上)。介面可以從多個基介面繼承,而類或結構可以實現多個介面。介面可以包含方法、屬性、事件和索引器。介面本身不提供它所定義的成員的實現。介面只指定實現該介面的類或介面必須提供的成員。
介面好比一種模版,這種模版定義了對象必須實現的方法,其目的就是讓這些方法可以作為介面實例被引用。介面不能被實例化。類可以實現多個介面並且通過這些實現的介面被索引。介面變數只能索引實現該介面的類的實例。例子:
B. 描述出JAVA中使用介面應該注意的規范
http://..com/question/43077233.html?fr=qrl
這個說得比較清楚了
C. java的介面是什麼意思,介面具體能做什麼呢
java介面的用處主要體現在下面幾個方面:
(1)通過介面可以實現不相關類的相同行為,而不需要了解對象所對應的類。
(2)通過介面可以指明多個類需要實現的方法。
(3)通過介面可以了解對象的交互界面,而不需了解對象所對應的類。
類描述了一個實體,包括實體的狀態,也包括實體可能發出的動作。
介面定義了一個實體可能發出的動作。但是只是定義了這些動作的原型,沒有實現,也沒有任何狀態信息。
所以介面有點象一個規范、一個協議,是一個抽象的概念;而類則是實現了這個協議,滿足了這個規范的具體實體,是一個具體的概念。
從程序角度,簡單理解,介面就是函數聲明,類就是函數實現。需要注意的是同一個聲明可能有很多種實現。
1、介面中定義類方法的原型,但是不能說是空方法,因為空方法的意思是有實現體,只不過實現體是空操作。實際上介面沒有定義任何實現體。具體的實現體都是在實現介面的類中,介面只是定義了這些方法的調用方式。
你當然也可以不用介面,直接在類裡面寫方法,但是如果你的一組方法需要在很多類里實現,那麼把它們抽象出來,做成一個介面規范,不是更好么?
2、一個類描述了一個實體,這個實體可能是一個復雜的對象,它的動作很多,如果把這些動作分類,用介面a定義其中的某一組動作,介面b定義其中的另外一組動作,這樣的結構,比較清楚。
這種方式具備了多繼承的優點,避免了多繼承的缺陷。實際上在歷史上,介面在很大程度上,是為了解決多繼承帶來的種種問題而設計出來的。
3、包中那些已定義的介面,怎麼知道那裡面定義了什麼方法。
介面里定義了方法的輸入輸出,這些都是協議,具體的實現都在每個類中。對於很多隻需要抽象介面的地方,不需要知道具體的類是什麼,只要這個類實現了這個介面就可以了。
D. java為什麼要設計介面規范
抽象類和介面
什麼是介面:介面就是一些方法特徵的集合------介面是對抽象的抽象。
什麼是抽象類:抽象類對某具體類型的部分實現------抽象類是對具體的抽象。
方法特徵包括:方法的名字、參數的數目、參數的類型。不包括:返回類型、參數名字、和拋出的異常。
介面是類型轉換的前提、是動態調用的保證。實現某一介面就完成了類型的轉換(多重繼承);動態調用只關心類型,不關心具體類。
--------------------------------------------------------------------------------------------------------------------------------------
JAVA介面(抽象類)用來聲明一個新的類型。
JAVA設計師應當主要使用介面和抽象類將軟體單位與內部和外部耦合起來。
換言之,應當使用JAVA介面和抽象類而不是具體類進行變數的類型聲明、參數的類型聲明、方法的返回類型聲明、以及數據類型的轉換等。
當然一個更好的做法是僅僅使用介面,而不是抽象類來做上面這些事情。
在理想的情況下,一個具體類應當只實現介面和抽象類中聲明的方法,而不應當給出多餘的方法!
介面和抽象類一般作為一個類型等級結構的起點。
介面比抽象類更為抽象所以優先使用介面聲明抽象類型!
--------------------------------------------------------------------------------------------------------------------------------------
抽象類和介面
抽象類僅提供一個類的部分實現。抽象類可以有實例變數、以及一個或多個構造函數。抽象類可以同時又抽象方法和具體方法。
一個抽象類不會有實例,它的構造函數不能被客戶端用來創建實例。一個抽象類的構造函數可以被其子類調用,從而使一個抽象類的所有子類可以有一些共同的實現,而不同的子類可以在此基礎上有不同的實現。
介面比抽象類更為抽象所以有線使用介面聲明抽象類!
抽象類是用來繼承的。(具體類不是用來繼承的,「只要有可能不要從具體類繼承---SCOTTMERYES」)。
抽象類設計原則:
1.抽象類應當擁有盡可能多的代碼!(公用方法)。代碼集中於抽象的方向。
2.抽象類應當擁有盡可能少的數據!(公共屬性)。數據集中於具體的方向。
繼承復用的使用條件-------PETERCOAD條件
1.子類是超類的一個特殊種類而不是超類的一個角色!正確區分「HAS-A」「IS-A」的關系。
2.子類之間不應發生替換!?
3.子類具有擴展超類的責任,而不是置換(OVERRIDE)掉或注銷(NULLIFY)掉的責任。
4.只有在分類學角度上有意義時才可以使用繼承,不要從具體類繼承。
介面和抽象類的區別:
1.抽象類可以提供某些方法的實現。如果向抽象類中加入一個新的具體的方法,那麼所有的子類一下子就得到了這個方法。介面做不到這一點!(這也許是抽象類的唯一優點)。
2.因JAVA的單根結構限制,只類只能實現一個抽象類類型,而介面類型這無此限制。這使抽象類作為類型定義工具的效能落後於介面。介面是定義混合類型(實現多從繼承)的理想工具:用一個
3.從代碼重構的角度上講,將一個具體類重構成一個介面的實現是很容易的。
文章來自haoyu1566的網易博客
E. 請問java介面命名規范
一般寫法如:用戶登錄
UserLogin---介面
UserLoginImpl---實現類
F. java的介面是什麼
介面(Interface)是對符合介面需求的類的一套規范
介面主要作用是可以幫助實現類似於類的多重繼承的功能。
語法如圖
一個Java介面是一些方法特徵的集合,但沒有方法的實現
介面是由常量和抽象方法組成的特殊類
-------------------------------------------------------------
介面的定義
介面的定義包括介面聲明和介面體
介面體包括常量定義和方法定義
-------------------------------------------------------------
介面的實現
在類的聲明中用implements子句來表示一個類使用某個介面
在類體中可以使用介面中定義的常量,而且必須實現介面中定義的所有方法
一個類可以實現多個介面,在implements子句中用逗號分開
----------------------------------------------------------------
介面類型的使用
介面作為一種引用類型來使用
任何實現該介面的類的實例都可以存儲在該介面類型的變數中,通過這些變數可以訪問類所實現的介面中的方法
-------------------------------------------------
介面的特性:
介面可以多重實現
介面可以繼承其它的介面,並添加新的屬性和抽象方法
通過介面可以實現不相關類的相同行為,而不需要考慮這些類之間的層次關系。
通過介面可以指明多個類需要實現的方法。
通過介面可以了解對象的交互界面,而不需了解對象所對應的類
與繼承關系類似,介面與實現類之間存在多態性
G. java的介面是什麼意思介面具體能做什麼
java介面的用處主要體現在下面幾個方面:
(1)通過介面可以實現不相關類的相同行為,而不需要了解對象所對應的類。
(2)通過介面可以指明多個類需要實現的方法。
(3)通過介面可以了解對象的交互界面,而不需了解對象所對應的類。
類描述了一個實體,包括實體的狀態,也包括實體可能發出的動作。
介面定義了一個實體可能發出的動作。但是只是定義了這些動作的原型,沒有實現,也沒有任何狀態信息。
所以介面有點象一個規范、一個協議,是一個抽象的概念;而類則是實現了這個協議,滿足了這個規范的具體實體,是一個具體的概念。
從程序角度,簡單理解,介面就是函數聲明,類就是函數實現。需要注意的是同一個聲明可能有很多種實現。
1、介面中定義類方法的原型,但是不能說是空方法,因為空方法的意思是有實現體,只不過實現體是空操作。實際上介面沒有定義任何實現體。具體的實現體都是在實現介面的類中,介面只是定義了這些方法的調用方式。
你當然也可以不用介面,直接在類裡面寫方法,但是如果你的一組方法需要在很多類里實現,那麼把它們抽象出來,做成一個介面規范,不是更好么?
2、一個類描述了一個實體,這個實體可能是一個復雜的對象,它的動作很多,如果把這些動作分類,用介面a定義其中的某一組動作,介面b定義其中的另外一組動作,這樣的結構,比較清楚。
這種方式具備了多繼承的優點,避免了多繼承的缺陷。實際上在歷史上,介面在很大程度上,是為了解決多繼承帶來的種種問題而設計出來的。
3、包中那些已定義的介面,怎麼知道那裡面定義了什麼方法。
介面里定義了方法的輸入輸出,這些都是協議,具體的實現都在每個類中。對於很多隻需要抽象介面的地方,不需要知道具體的類是什麼,只要這個類實現了這個介面就可以了。
H. 什麼是java 介面,用處是什麼
介面是一種規范
軟體開發大多是一個協作性的工作:電器和插座分別是不同人完成的,有了介面大家就能分頭開干,都按照介面來辦事,各自做完就能輕松地整合到一起。各部分的測試也更加方便。
介面在開發過程中可以快速分離工作內容。
比如調用者在寫業務邏輯的時候需要一個功能,可能是資料庫訪問,或者復雜計算,但是他的工作專注於實現業務邏輯,不想分開精力去做底層實現,那麼他只需要先實現一個介面,定義了規范,然後就可以繼續他的業務邏輯代碼了。而實現者可以根據這個介面規范,做具體的實現。
這樣通過使用介面就可以快速的分離工作內容,達到團隊並行工作的目的。
(8)java介面規范擴展閱讀:
功能
在Java語言規范中,一個方法的特徵僅包括方法的名字,參數的數目和種類,而不包括方法的返回類型,參數的名字以及所拋出來的異常。在Java編譯器檢查方法的重載時,會根據這些條件判斷兩個方法是否是重載方法。
但在Java編譯器檢查方法的置換時,則會進一步檢查兩個方法(分處超類型和子類型)的返還類型和拋出的異常是否相同。
介面實現和類繼承的規則不同,為了數據的安全,繼承時一個類只有一個直接父類,也就是單繼承,但是一個類可以實現多個介面,介面彌補了類的不能多繼承缺點,繼承和介面的雙重設計既保持了類的數據安全也變相實現了多繼承。
Java介面本身沒有任何實現,因為Java介面不涉及表象,而只描述public行為,所以Java介面比Java抽象類更抽象化。但是介面不是類,不能使用new 運算符實例化一個介面。
I. JAVA 介面是不是就像一個標准,一個規范
介面的作用就是把使用介面的人和實現介面的人分開,實現介面的人不必要關心誰去使用,而使用介面的人也不用關心誰實現的介面,由介面將他們聯系在一起。以上像一段繞口令,那麼通過下面的幾段程序解釋:
1、以生產和使用一台計算機為例,首先,我們定義了一個顯卡的介面,他裡面有顯示功能和獲取顯卡名稱的功能:
interface VidioCard
{
void display();
String getName();
}
2、顯卡的生產者來了,他必須實現介面中定義的所有方法,也可以自己增添若干方法:
class HaolongVidio implements VidioCard
{
String name="Haolong's vidiocard";
void setName(String name){
this.name=name;
}
public void display(){
System.out.println("The Haolong's vidiocard is running!!");
}
public String getName(){
return name;
}
};
顯卡製造商生產出了顯卡,並且通過setName方法貼上了自己的商標,而通過getName方法可以讓使用者知道這塊顯卡的製造商。
3、現在顯卡已經生產出來了,但是我們還需要一塊主板,把生產出來的顯卡插到主板上才能夠使用,那麼我們去買主板:
class MainBorad
{
String cpuname;
VidioCard vc;
void setCPU(String cpuname){
this.cpuname=cpuname;
}
void setVidioCard(VidioCard vc){
this.vc=vc;
}
void run(){
System.out.println("wudi-mainbord!");
System.out.println(vc.getName());
vc.display();
System.out.println("mainbord is running successful!");
}
};
這是主板廠商生產的主板,這也就是我們所說的介面的使用者,在他生產主板的時候並不知道用戶使用的是哪塊顯卡(程序中這樣理解:Mainborad這個類只知道介面VidioCard中有哪些方法,但是並不知道介面的實現類HaolongVidio是怎麼去實現介面的,也就是生產主板的廠商並沒有必要考慮顯卡是哪個廠商的,他要做的只是根據介面把顯卡插槽做好,介面里沒有實現的方法相當於插槽),但是他留出來了顯卡的插槽(插槽就是介面),也就是他不關心誰實現的介面,但是他可以使用介面,預留出顯卡的插槽讓用戶去選購顯卡。
4、現在我們用戶開始組裝計算機了:
public class ChengDuActor
{
public static void main(String [] args){
HaolongVidio hv=new HaolongVidio();//買了一塊HaolongVidio顯卡
MainBorad mb=new MainBorad();//買了一塊主板
mb.setCPU("Intel");//買的是Inter主板
mb.setVidioCard(hv);//把HaolongVidio插到主板上(通過主板上setVidio方法)
//System.out.println(hv.getName());
mb.run();//開電腦運行
System.out.println("success");
}
};
以上看出介面的作用就是大力實現了java的開源性,使軟體開發過程優化,介面重要的特徵是實現了多樣性,能夠很好地解決C++中遺留的多繼承中出現的問題。
如果對您有幫助,請記得採納為滿意答案,謝謝!祝您生活愉快!
vaela