導航:首頁 > 編程語言 > java介面引用

java介面引用

發布時間:2022-09-01 05:34:38

A. java關於介面引用子類對象

為什麼使用介面兩個類中的兩個類似的功能,調用他們的類動態的決定一種實現,那他們提供一個抽象父類,子類分別實現父類所定義的方法。
問題的出現:Java是一種單繼承的語言,一般情況下,哪個具體類可能已經有了一個超類,解決是給它的父類加父類,或者給它父類的父類加父類,只到移動到類等級結構的最頂端。這樣一來,對一個具體類的可插入性的設計,就變成了對整個等級結構中所有類的修改。
介面是可插入性的保證。
在一個等級結構中的任何一個類都可以實現一個介面,這個介面會影響到此類的所有子類,但不會影響到此類的任何超類。此類將不得不實現這個介面所規定的方法,而其子類可以從此類自動繼承這些方法,當然也可以選擇置換掉所有的這些方法,或者其中的某一些方法,這時候,這些子類具有了可插入性(並且可以用這個介面類型裝載,傳遞實現了他的所有子類)。
我們關心的不是那一個具體的類,而是這個類是否實現了我們需要的介面。
介面提供了關聯以及方法調用上的可插入性,軟體系統的規模越大,生命周期越長,介面使得軟體系統的靈活性和可擴展性,可插入性方面得到保證。
類型
使用Java介面將軟體單位與內部和外部耦合起來。使用Java介面不是具體的類進行變數的類型聲明,方法的返還類型聲明,參量的類型聲明,以及數據類型的轉換。
在理想的情況下,一個具體的Java類應當只實現Java介面和抽象Java類中聲明的方法,而不應當給多餘方法。

B. 為什麼java介面可以被引用

介面也是類,只是一個很特別的抽象類,全是抽象方法的抽象類,引用都是引用一些實現它了的類,不過也只能使用這個介面定義的方法

C. java 介面怎麼用應該怎麼實現

java語言不支持一個類有多個直接的父類(多繼承),但可以實現(implements)多個介面,間接的實現了多繼承
用法public class test implements 介面名稱
當類實現了某個Java介面時,它必須實現介面中的所有抽象方法,否則這個類必須聲明為抽象的

比較抽象類與介面
1, 抽象類與介面都位於繼承樹的上層
相同點
1, 代表系統的抽象層,當一個系統使用一顆繼承樹上的類時,應該盡量把引用變數聲明為繼承樹的上層抽象類型,這樣可以提高兩個系統之間的送耦合
2, 都不能被實例化
3, 都包含抽象方法,這些抽象方法用於描述系統能提供哪些服務,但不提供具體的實現
不同點:
1, 在抽象類中可以為部分方法提供默認的實現,從而避免在子類中重復實現它們,這是抽象類的優勢,但這一優勢限制了多繼承,而介面中只能包含抽象方法.由於在抽象類中允許加入具體方法,因此擴展抽象類的功能,即向抽象類中添加具體方法,不會對它的子類造成影響,而對於介面,一旦介面被公布,就必須非常穩定,因為隨意在介面中添加抽象方法,會影響到所有的實現類,這些實現類要麼實現新增的抽象方法,要麼聲明為抽象類
2, 一個類只能繼承一個直接的父類,這個父類可能是抽象類,但一個類可以實現多個介面,這是介面的優勢,但這一優勢是以不允許為任何方法提供實現作為代價的三, 為什麼Java語言不允許多重繼承呢?當子類覆蓋父類的實例方法或隱藏父類的成員變數及靜態方法時,Java虛擬機採用不同的綁定規則,假如還允許一個類有多個直接的父類,那麼會使綁定規則更加復雜,
因此,為了簡化系統結構設計和動態綁定機制,Java語言禁止多重繼承.而介面中只有抽象方法,沒有實例變數和靜態方法,只有介面的實現類才會實現介面的抽象方法(介面中的抽象方法是通過類來實現的),因此,一個類即使有多個介面,也不會增加Java虛擬機進行動態綁定的復雜度.因為Java虛擬機永遠不會把方法與介面綁定,而只會把方法與它的實現類綁定.四, 使用介面和抽象類的總體原則:
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, 用抽象類來定製系統中的擴展點
抽象類來完成部分實現,還要一些功能通過它的子類來實現

D. java介面 引用

你的fun3()方法時定義在類B中的,它不屬於介面A,所以你調用不了它。而且A a =new B ()這句,你創建的不是B類的對象,而是介面A被B類實現後的對象。所以很明顯你用a.fun3()實質上是調用介面A的fun3()方法,但你的介面A中並沒定義fun3()方法,所以會出錯。
你的題目里頭「在類中添加一個fun3()方法,使用new關鍵字創建一個類的對象"要求你創建的B類的對象,應該改為 B a =new B ()
如果你必須要用介面A的對象 a 來調用B類的fun3()方法,就必須進行強制類型轉換:((B)a).fun3(); 這樣就把對象a 強制轉換為B類的了,就可以調用B類的fun3()方法

E. Java常說的介面調用,是怎麼調用別人的介面

介面是用來實現的
關鍵字 implements
class A inplements B,C{}
介面可以實現多個
實現了介面之後相當於繼承一個抽象類的意思
因為介面中只有靜態方法和常量 所以必須實現介面里的所有方法
你所謂的介面調用是調用介面的實現類
也就是java 多態性的體現 向上造型
就是父類的引用指向子類的對象
然後引用調用子類重寫的 父類方法
基本就是這么個意思,打了這么多基礎知識 不採納就說不過去了

F. Java關於介面引用實現該介面類的對象

介面是抽象的,用來解耦最適合。而且可以發揮多態的優勢。

給你舉個例子

interface
A
{

void
run();

}

class
B
implements
A{

void
run()
{

System.out.println("我是B");

}

}

class
C
implements
A{

void
run()
{

System.out.println("我是C");

}

}

如果你這么寫:

A
a
=
new
B();

a.run();//這里列印出「我是B」,如果前面new的是C這里就列印出「我是C」。

所以這個類就和B和C這2個類解耦,BC的改變都不會影響到你當前這個類。

G. java怎麼創建類時引用介面

點擊「Add」之後,看圖片

紅框內輸入你的介面名字,然後下面的大框裡面會出現相關介面,選擇相應的介面就行了啊。

無語

H. JAVA怎麼調用介面

String sendPost(String jsonStr, String path)
throws IOException {
byte[] data = jsonStr.getBytes();
java.net.URL url = new java.net.URL(path);
java.net.HttpURLConnection conn =
(java.net.HttpURLConnection) url.openConnection();
conn.setRequestMethod("POST");
conn.setConnectTimeout(5 * 1000);// 設置連接超時時間為5秒
conn.setReadTimeout(20 * 1000);// 設置讀取超時時間為20秒
// 使用 URL 連接進行輸出,則將 DoOutput標志設置為 true
conn.setDoOutput(true);

conn.setRequestProperty("Content-Type", "text/xml;charset=UTF-8");
//conn.setRequestProperty("Content-Encoding","gzip");
conn.setRequestProperty("Content-Length", String.valueOf(data.length));
OutputStream outStream = conn.getOutputStream();// 返回寫入到此連接的輸出流
outStream.write(data);
outStream.close();//關閉流
String msg = "";// 保存調用http服務後的響應信息
// 如果請求響應碼是200,則表示成功
if (conn.getResponseCode() == 200) {
// HTTP服務端返回的編碼是UTF-8,故必須設置為UTF-8,保持編碼統一,否則會出現中文亂碼
BufferedReader in = new BufferedReader(new InputStreamReader(
(InputStream) conn.getInputStream(), "UTF-8"));
msg = in.readLine();
in.close();
}
conn.disconnect();// 斷開連接
return msg;
}

I. JAVA 將介面的引用指向實現類的對象

樓上的介面類的類名首字母要大寫,其他的樓上說的都正確,就比如說:
Person p = new Student();
Person是介面,Student是Person介面的實現類,像上面這樣就是:將介面的引用指向實現類的對象,明白不?

J. 關於java編程中返回介面引用的問題,請教大家!

不用管這個類是什麼 反正返回的一定是實現了IWorkspace介面(或子介面)的類的對象
去查配套的api文檔就知道了

閱讀全文

與java介面引用相關的資料

熱點內容
易語言開啟指定文件夾 瀏覽:33
馬思純參加密室大逃脫 瀏覽:319
文件夾冬季澆築溫度 瀏覽:710
京東有返點的aPp叫什麼 瀏覽:601
如何查看u點家庭伺服器是幾兆 瀏覽:260
python應用介面怎麼接 瀏覽:65
腐蝕怎麼進不去伺服器啊 瀏覽:357
linuxcpiogz 瀏覽:628
安卓中的布局是什麼文件 瀏覽:395
dex反編譯部分代碼無法查看 瀏覽:461
linuxandroid編譯 瀏覽:601
程序員電視劇20集 瀏覽:908
怎麼擴建文件夾 瀏覽:160
波普諾社會學pdf 瀏覽:98
通風網路理論與演算法 瀏覽:740
win8如何關閉伺服器 瀏覽:383
醫護比例演算法 瀏覽:809
伺服器s是什麼意思 瀏覽:33
華為手機怎麼設置不讓app訪問照片 瀏覽:694
編程貓微信小程序 瀏覽:393