1、接口的做用java
1.可使項目分層,全部層都面向接口開發,開發效率提升了。node
2.接口使代碼和代碼之間的耦合度下降,就像內存條和主板的關係,變得「可插拔」,能夠隨意切換。git
總結:接口和抽象類可以完成某個功能,優先選擇接口。由於接口能夠多實現、多繼承。而且一個類除了實現接口以外,還能夠去繼承其餘類(保留了類的繼承)。github
層次爲:微信
測試類=====接口=====實現類學習
咱們首相定義好接口,而後測試類使用接口定義好的變量或者方法進行調用,實現類則根據接口的定義來編寫接口的實現類。測試
例如:Jiekou j1 = new Shixianlei();其中類Shixianlei是接口Jiekou的實現。大數據
2、這裏舉個例子ui
(1)建立一個"引擎「接口this
(2)建立」奔馳「和」奧迪「兩個引擎接口的實現類
(3)建立一個」車」類,裏面能夠加入兩種引擎
(4)最後建立一個測試類,用來測試兩種引擎的車
package com.bjpowernode.java_learning; public interface D55_1_Engine { public void launch(); }
package com.bjpowernode.java_learning; public class D55_2_Benz implements D55_1_Engine{ public void launch() { System.out.println("Benz引擎啓動"); } }
package com.bjpowernode.java_learning; public class D55_3_Audi implements D55_1_Engine { public void launch() { System.out.println("Audi引擎啓動"); } }
package com.bjpowernode.java_learning; public class D55_4_Car { D55_1_Engine e;//這個類中的成員變量建立的必要性,這是爲了可以讓引擎的對象傳進來,進行引擎對象的調用 D55_4_Car(D55_1_Engine e){ this.e = e; } public void testEngine() { e.launch(); } }
package com.bjpowernode.java_learning; public class D55_5_test { public static void main(String[] args) { //生產引擎 D55_1_Engine e1 = new D55_2_Benz(); D55_1_Engine e2 = new D55_3_Audi(); //生產汽車 D55_4_Car c1 = new D55_4_Car(e1); D55_4_Car c2 = new D55_4_Car(e2); c1.testEngine(); c2.testEngine(); } }
3、源碼:
D55_1_Engine.java
D55_2_Benz.java
D55_3_Audi.java
D55_4_Car.java
D55_5_test.java
地址:
https://github.com/ruigege66/Java/blob/master/D55_1_Engine.java
https://github.com/ruigege66/Java/blob/master/D54_2_InterfaceExercise.java
https://github.com/ruigege66/Java/blob/master/D55_3_Audi.java
https://github.com/ruigege66/Java/blob/master/D55_4_Car.java
https://github.com/ruigege66/Java/blob/master/D55_5_test.java
2.CSDN:https://blog.csdn.net/weixin_44630050(心悅君兮君不知-睿)
3.博客園:https://www.cnblogs.com/ruigege0000/
4.歡迎關注微信公衆號:傅里葉變換,我的公衆號,僅用於學習交流,後臺回覆」禮包「,獲取大數據學習資料