java學(xué)習(xí)干貨之接口與實(shí)現(xiàn)

接口泛指別人調(diào)用的方法或者是函數(shù)。我們是通過(guò)Interface來(lái)定義接口的,我們也可以將接口看做成一個(gè)抽象的類,只不過(guò)他沒(méi)有構(gòu)造方法,同時(shí)它里面只有靜態(tài)的屬性和抽象的方法。這樣的話接口的實(shí)現(xiàn)就有幾點(diǎn)注意的事項(xiàng)了:
1、接口的實(shí)現(xiàn)使用的是implements關(guān)鍵字來(lái)實(shí)現(xiàn)的。
2、接口的實(shí)現(xiàn)我們要實(shí)現(xiàn)接口里面的所有的抽象類當(dāng)時(shí)如果實(shí)現(xiàn)接口的類是一個(gè)抽象的類的話就可以不實(shí)現(xiàn)接口里面的抽象方法。
3、因?yàn)榻涌跊](méi)有構(gòu)造方法所以接口不可以實(shí)例化。
眾所周知java不像c++那樣能有多繼承,java要實(shí)現(xiàn)多繼承的話就要通過(guò)接口來(lái)實(shí)現(xiàn),接口是可以多繼承的。接口其實(shí)就是一種約定,所以實(shí)現(xiàn)接口的類可以有很多。我們有一個(gè)例子來(lái)細(xì)說(shuō)接口與實(shí)現(xiàn):
我們定義一個(gè)書(shū)信的接口

public interface ILetter {
    /***
     * 書(shū)信的標(biāo)題
     * @param str1 書(shū)信的標(biāo)題
     */
    void title(String str1);
    /**
     * 書(shū)信的問(wèn)候語(yǔ)
     * @param str2 書(shū)信的問(wèn)候語(yǔ)
     */
    void sallHello(String str2);
    /**
     * 書(shū)信的內(nèi)容
     * @param str3 書(shū)信的內(nèi)容
     */
    void body(String str3);
    /***
     * 書(shū)信的結(jié)尾
     * @param str4 書(shū)信的結(jié)尾
     */
    void over(String str4);
    /***
     * 寫(xiě)信人的姓名
     * @param str5 寫(xiě)信人的姓名
     */
    void name(String str5);
    /***
     * 寫(xiě)信的日期
     * @param str6 寫(xiě)信的日期
     */
    void date(String str6);
}

我們定義的這個(gè)接口將日常生活中寫(xiě)信的格式,這樣我們只要向里面添加文字就可以了?,F(xiàn)在我們頂一個(gè)類來(lái)實(shí)現(xiàn)接口:

 public class Letter implements ILetter {
    @Override
    public void title(String str1) {
        System.out.println(str1);
    }
    @Override
    public void sallHello(String str2) {
        System.out.println("  "+str2);
    }
    @Override
    public void body(String str3) {
        System.out.println("\n  "+str3);
    }
    @Override
    public void over(String str4) {
        System.out.println("\n  "+str4);
    }
    @Override
    public void name(String str5) {
        System.out.println("                          "+str5);
    }
    @Override
    public void date(String str6) {
        System.out.println("                  "+str6);
    }
}

實(shí)現(xiàn)接口的這個(gè)類里面我們重寫(xiě)了書(shū)信接口里面的所有抽象的方法,我們一個(gè)類也可以實(shí)現(xiàn)多個(gè)接口,每個(gè)接口名之間我們用逗號(hào)隔開(kāi)就可以了。最后一步就是寫(xiě)一個(gè)測(cè)試類來(lái)測(cè)試我們寫(xiě)的接口是否有問(wèn)題了。

public class LetterText {
    public static void main(String[] args) {
        Letter letter = new Letter();
        String str1 = "尊敬的爸爸、媽媽:";
        String str2 = "你們好嗎?";
        String str3 = "我在這里挺好的。\n  我會(huì)努力學(xué)的。\n  您二老保重身體!";
        String str4 = "此致\n敬禮";
        String str5 = "周杰";
        String str6 = "2010年6月1日";
        letter.title(str1);
        letter.sallHello(str2);
        letter.body(str3);
        letter.over(str4);
        letter.name(str5);
        letter.date(str6);
    }
}

我們會(huì)發(fā)現(xiàn)這和我們多態(tài)沒(méi)有什么多大區(qū)別??!那為什么我們要定義接口?定義接口我們可以更好的管理我們定義的多態(tài)。大量的節(jié)省代碼,同時(shí)大量的節(jié)省了我們火氣維護(hù)和更新代碼的時(shí)間。所以面向接口的編程可以給我們帶來(lái)無(wú)限的好處。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容