<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
官方解釋:
Java內的介面是一系列方法的宣告,是一些方法特徵的集合,一個介面只有方法的特徵沒有方法的實現,因此這些方法可以在不同的地方被不同的類實現,而這些實現可以具有不同的行為(功能)。
個人理解解釋:
其實介面可以理解為一種特殊的類,這個類裡面全部是由全域性常數和**公共的抽象方法(需要重寫)所組成。介面是解決Java無法使用多繼承的一種手段。我們可以把介面理解為是一個100%的抽象類,既介面中的方法必須全部是抽象方法。反正介面裡面都是方法,但是沒有方法體,其他類實現這個介面後重寫方法體即可。
為什麼要用介面
建立介面的關鍵字:interface
實現介面的關鍵字:implements
public interface StudentTest { //StudentTest:介面名稱 public void Study(); //介面內的方法,在介面內不提供方法體。 } //這就是一個簡單的介面
實現介面:
public class student implements StudentTest{ @Override public void Study(){ System.out.println("我繼承了StudentTest,並重寫了介面內的Study方法"); } } //測試類 public class TestMain { public static void main(String[] args) { student s = new student(); s.Study(); } }
//輸出:我繼承了StudentTest,並重寫了介面內的Study方法
//程式碼解釋:
//1、用interface建立StudentTest介面,介面內有Study方法
//2、新建student類,用implements實現StudentTest介面
//3、重寫Study()方法
//4、測試類測試
注意:實現一個介面,需要重寫這個介面裡面的所有方法!!!!
上述程式碼和解釋完成了對介面的初步理解,下面我們對介面有個進一步的理解:
進一步理解介面:
在生活中,我們都有U盤,若要在電腦上對U盤進行讀取和寫入,我們需要使用USB介面。一臺電腦有多個USB介面,所以我們先定義兩個USB介面,並且有兩個方法,分別是讀取和寫入:
//第一個USB介面 public interface USB1 { public void read_1(); //讀取方法 public void write_1(); //寫入方法 } //第二個USB介面 public interface USB2 { public void read_2(); //第二個U盤的方法 public void write_2(); }
然後我們有一個U盤,因為U盤使用的是標準USB介面,所以兩個USB介面我們都可以進行讀取和寫入,U盤類就實現了USB1和USB2兩個介面,並重寫了方法:
package instance_test; public class YOUPAN implements USB1,USB2{ @Override public void read_1() { System.out.println("這是用第一個USB的讀取介面"); }; @Override public void write_1() { System.out.println("這是用第一個USB的寫入介面"); }; @Override public void read_2() { System.out.println("這是用第二個USB的讀取介面"); }; @Override public void write_2() { System.out.println("這是用第二個USB的寫入介面"); }; } //意思是U盤只要符合USB介面標準,使用任意一個都可以操作方法
然後我們開始使用兩個介面:
測試類:
public class Test_Main { public static void main(String[] args) { YOUPAN y = new YOUPAN(); y.read_1(); y.write_1(); y.read_2(); y.write_2(); } }
結果:
/*
這是用第一個USB的讀取介面
這是用第一個USB的寫入介面
這是用第二個USB的讀取介面
這是用第二個USB的寫入介面
*/
然後我們現在有一部手機,有根傳輸線,傳輸線兩頭分別是USB和Type_C,若要用傳輸線對手機進行充電和更新資料,就同時要實現USB和Type_C兩個介面,所以我們新建一個Type_C介面:
public interface Type_C { //Type_C介面 public void Charge(); //充電 public void Update(); //更新資料 }
然後新建一個手機類,有根傳輸線,並且實現了USB介面和Type_C介面:
public class phone implements USB1,Type_C{ //傳輸線實現 USB1,Type_C介面 @Override public void read_1() { System.out.println("手機用第一個USB的介面和") //傳輸線使用USB介面的同時,會給一句提示語 } @Override public void write_1() { System.out.println("手機用第一個USB的介面和") } @Override public void Charge(){ System.out.println("使用Type_C介面充電"); //傳輸線使用Type_C介面的同時,會給一句提示語 } @Override public void Update(){ System.out.println("使用Type_C介面更新資料"); } }
接著測試手機類:
public class Test_Main { public static void main(String[] args) { phone p = new phone(); p.read_1(); p.Charge(); System.out.println("----------------"); p.read_1(); p.Update(); } }
結果:
/*
手機用第一個USB的介面和
使用Type_C介面充電
----------------
手機用第一個USB的介面和
使用Type_C介面更新資料*/
這樣一個類就實現了對多個介面的實現,恰恰解決了Java中類不能繼承多個父類別的侷限性!!
public interface USB3 extends USB1,USB2{ } //這句多繼承語法是OK的
大家看到這裡,已經知道介面也是一個抽象的,那麼介面和抽象類有什麼區別呢?
介面和抽象類的區別(這也是面試題,整理自網際網路):
抽象類和介面的對比:
兩者的相同點:
兩者不同點:
備註::Java8中介面中引入預設方法和靜態方法,以此來減少抽象類和介面之間 的差異。 現在,我們可以為介面提供預設實現的方法了,並且不用強制子類來實現它。 介面和抽象類各有優缺 點,在介面和抽象類的選擇上,必須遵守這樣一個原則:
到此這篇關於Java十分鐘精通介面的使用與原理 的文章就介紹到這了,更多相關Java 介面內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45