您好,登錄后才能下訂單哦!
java中接口的作用是什么?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
接口的定義:
Java接口是一系列方法的聲明,是一些方法特征的集合,一個接口只有方法的特征沒有方法的實現(xiàn),因此這些方法可以在不同的地方被不同的類實現(xiàn),而這些實現(xiàn)可以具有不同的行為(功能)。
兩種含義:一,Java接口,Java語言中存在的結(jié)構(gòu),有特定的語法和結(jié)構(gòu);二,一個類所具有的方法的特征集合,是一種邏輯上的抽象。前者叫做"Java接口",后者叫做"接口"。
在Java語言規(guī)范中,一個方法的特征僅包括方法的名字、參數(shù)的數(shù)目和類型,而不包括方法的返回類型、參數(shù)名以及所拋出來的異常。在Java編譯器檢查方法的重載時,會根據(jù)這些條件判斷兩個方法是否是重載方法。但在Java編譯器檢查方法的置換時,則會進一步檢查兩個方法(分處超類型和子類型)的返還類型和拋出的異常是否相同。
接口的作用:
1、可以使項目分離,所有層都面向接口開發(fā),提高開發(fā)效率;
2、接口使代碼和代碼之間的耦合度降低,變得可插拔,可以隨意切換;
3、接口和抽象類都能完成某個功能,優(yōu)先選擇接口,因為接口可以多實現(xiàn),多繼承,并且一個類除了接口之外,還可以繼承其它類。
(視頻教程推薦:java視頻教程)
代碼示例:
public interface CustomerService { //定義一個推出系統(tǒng)的方法 void logout(); } package date818;//接口實現(xiàn)類1public class CustomerServierImpl implements CustomerService { public void logout(){ System.out.println("成功退出系統(tǒng)"); } } package date818;//接口實現(xiàn)類2public class CustomerServiceImpl2 implements CustomerService{ public void logout(){ System.out.println("hello world"); } } package date818;public class TestCustomer { public static void main(String[] args){ //需要執(zhí)行CustomerServiceImpl和CustomerImpl2接口實現(xiàn)類中的logout方法 //以下程序面向接口調(diào)用 CustomerService cs = new CustomerServierImpl();//多態(tài)。父類型引用指向子類型對象 //調(diào)用 cs.logout(); CustomerService cs2 = new CustomerServiceImpl2(); cs2.logout(); } }
定義接口
package date818; public interface Engine { //所有發(fā)動機都可以通過這個接口啟動 void start(); }//定義實現(xiàn)接口的類 package date818; public class Honda implements Engine{ public void start(){ System.out.println("本田啟動"); } } package date818;public class Ymaha implements Engine{ public void start(){ System.out.println("雅馬哈啟動"); } }//定義生產(chǎn)汽車的類package date818;public class Car { //面向接口編程,不能將類實例化 /** * 引用接口定義一個屬性e,相當于 * String name; * Integer age; * 類里定義的變量是成員變量;方法里定義的變量是局部變量。 */ Engine e ;//成員變量e Car(Engine e){ //定義構(gòu)造方法,把局部變量e賦值給成員變量 this.e=e; } //對外提供的測試方法 public void testEngine(){ //成員變量e e.start(); } }//定義測試類package date818;public class TestCar { public static void main(String[] args){ //生產(chǎn)引擎 Engine e = new Ymaha(); //根據(jù)構(gòu)造方法傳入?yún)?shù)生產(chǎn)汽車 Car c = new Car(e); //測試引擎 c.testEngine(); c.e = new Honda();//已經(jīng)定義了一個實例,直接對實例的參數(shù)修改即可 c.testEngine(); } }
看完上述內(nèi)容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業(yè)資訊頻道,感謝您對億速云的支持。
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。