溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java中接口的作用是什么

發(fā)布時間:2020-06-28 19:49:03 來源:億速云 閱讀:848 作者:元一 欄目:編程語言

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è)資訊頻道,感謝您對億速云的支持。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI