亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

關(guān)于接口的簡(jiǎn)單理解

NoraXie / 2690人閱讀

摘要:第五章接口接口概述常見(jiàn)的貓狗案例貓和狗它們僅僅提供一些基本功能。如果一個(gè)類繼承了某個(gè)抽象類,它的子類則一定是抽象類的種類,而接口實(shí)現(xiàn)則是有或者沒(méi)有具備或者不具備的關(guān)系,比如狗是否能鉆火圈,能則可以實(shí)現(xiàn)這個(gè)接口,不能就不實(shí)現(xiàn)這個(gè)接口。

第五章 接口 5.1 接口概述

常見(jiàn)的貓狗案例 貓和狗它們僅僅提供一些基本功能。

但有一些不是動(dòng)物本身就具備的,比如:貓鉆火圈,狗跳高等功能

是在后面的培養(yǎng)中訓(xùn)練出來(lái)的,這種額外的功能,java提供了接口表示。

5.2 接口特點(diǎn) A:接口用關(guān)鍵字interface表示
[public] interface 接口名{
}

接口中的方法不能具體實(shí)現(xiàn),接口中的方法必須為抽象方法

接口中一般不定義變量,因?yàn)榻涌谥械淖兞繒?huì)被默認(rèn)指定為 public static final 變量(只能是)

B:類實(shí)現(xiàn)接口用implements 表示
class 類名 implements 接口1,接口2,[....]{
}

1.一個(gè)類(非抽象類)可以遵循多個(gè)接口,并且需要實(shí)現(xiàn)(重寫(xiě))該接口中所有的方法

2.子類為抽象類的意義不大

5.3 接口的成員特點(diǎn)
A:成員變量
 只能是常量

? 默認(rèn)修飾符:public static final

B:構(gòu)造方法

? 沒(méi)有構(gòu)造方法

C:成員方法

? 只能是抽象的

? 默認(rèn)修飾符:public abstract

5.4 抽象類和接口的區(qū)別(重要)

我們從我們實(shí)際設(shè)計(jì)場(chǎng)景中來(lái)切入這個(gè)話題

先來(lái)舉一個(gè)簡(jiǎn)單的例子:

狗都具有 eat() 、sleep() 方法,我們分別通過(guò)抽象類和接口定義這個(gè)抽象概念

//通過(guò)抽象類定義
public abstract class Dog {
    public abstract void eat();
    public abstract void sleep();  
}
//通過(guò)接口定義
public interface Dog {
    public abstract void eat();
    public abstract void sleep();
}

但是我們現(xiàn)在如果需要讓狗擁有一項(xiàng)特殊的技能——鉆火圈 DrillFireCircle(),如何增加這個(gè)行為呢?

思考:

將鉆火圈方法與前面兩個(gè)方法一同寫(xiě)入抽象類中,但是這樣的話,但凡繼承這個(gè)抽象類狗都具有了鉆火圈技能,明顯不合適

將鉆火圈方法與前面兩個(gè)方法一同寫(xiě)入接口中,當(dāng)需要使用鉆火圈功能的時(shí)候,就必須實(shí)現(xiàn) 接口中的eat() 、sleep() 方法(重寫(xiě)該接口中所有的方法)顯然也不合適

那么該如何解決呢 ? 我們可以仔細(xì)想一想,eat和sleep都是狗本身所應(yīng)該具有的一種行為,而鉆火圈這種行為則是后天訓(xùn)練出來(lái)的,只能算是對(duì)狗類的一種附加或者延伸, 兩者不應(yīng)該在同一個(gè)范疇內(nèi),所以我們考慮將這個(gè)多帶帶的行為,獨(dú)立的設(shè)計(jì)一個(gè)接口,其中包含DrillFireCircle()方法, Dog設(shè)計(jì)為一個(gè)抽象類, 其中又包括eat() 、sleep() 方法.

一個(gè)SpecialDog即可繼承Dog類并且實(shí)現(xiàn)DrillFireCircle()接口

下面給出代碼:

//定義接口,含有鉆火圈方法
public interface DrillFireCircle() {
    public abstract void drillFireCircle();
}

//定義抽象類狗類
public abstract class Dog {
    public abstract void eat();
    public abstract void sleep();
}
 
//繼承抽象類且實(shí)現(xiàn)接口
class SpecialDog extends Dog implements drillFireCircle {
    public void eat() {
      //....
    }
    public void sleep() {
      //....
    }
    public void drillFireCircle() () {
      //....
    }
}
總結(jié):

繼承是一種 "是或不是"的關(guān)系,而 接口 實(shí)現(xiàn)則是 "有或沒(méi)有"的關(guān)系。如果一個(gè)類繼承了某個(gè)抽象類,它的子類則一定是抽象類的種類,而接口實(shí)現(xiàn)則是有或者沒(méi)有、具備或者不具備的關(guān)系,比如狗是否能鉆火圈,能則可以實(shí)現(xiàn)這個(gè)接口,不能就不實(shí)現(xiàn)這個(gè)接口。

結(jié)尾:

如果內(nèi)容中有什么不足,或者錯(cuò)誤的地方,歡迎大家給我留言提出意見(jiàn), 蟹蟹大家 !^_^

如果能幫到你的話,那就來(lái)關(guān)注我吧!

在這里的我們素不相識(shí),卻都在為了自己的夢(mèng)而努力 ?

一個(gè)堅(jiān)持推送原創(chuàng)Java技術(shù)的公眾號(hào):理想二旬不止

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/74783.html

相關(guān)文章

  • 關(guān)于抽象類和接口初步理解

    摘要:關(guān)于抽象類和接口的初步理解什么是抽象類抽象類是指在前加了關(guān)鍵字且存在抽象方法在類方法關(guān)鍵字前加了關(guān)鍵字的類。抽象類不能被直接實(shí)例化。抽象類中只定義或部分實(shí)現(xiàn)子類需要的方法。抽象類提供了具體實(shí)現(xiàn)的標(biāo)準(zhǔn),而接口則是純粹的模板。 關(guān)于抽象類和接口的初步理解 什么是抽象類 抽象類是指在 class 前加了 abstract 關(guān)鍵字且存在抽象方法(在類方法 function 關(guān)鍵字前加了 ab...

    Julylovin 評(píng)論0 收藏0
  • 關(guān)于Web安全理解

    摘要:最近在學(xué)習(xí)安全相關(guān)的一些知識(shí),目前對(duì)安全也只有了一些淺顯的理解,下面記錄我的一些理解。防御攻擊的方法主要是修改數(shù)據(jù)的接口,盡量使用請(qǐng)求使用同源策略推薦的文章安全之攻擊其實(shí)還講了其他的幾種方法,但是都沒(méi)接觸過(guò),不太理解,所以沒(méi)有寫(xiě)下來(lái)。 最近在學(xué)習(xí)web安全相關(guān)的一些知識(shí),目前對(duì)web安全也只有了一些淺顯的理解,下面記錄我的一些理解。因?yàn)閷?duì)這一塊懂的東西不是很多,有些地方可能寫(xiě)的不對(duì)或者...

    2501207950 評(píng)論0 收藏0
  • 深入理解JavaScript系列10:S.O.L.I.D五大原則之依賴倒置原則

    摘要:前言本章我們要講解的是五大原則語(yǔ)言實(shí)現(xiàn)的第篇,依賴倒置原則。當(dāng)應(yīng)用依賴倒置原則的時(shí)候,關(guān)系就反過(guò)來(lái)了。在當(dāng)靜態(tài)類型語(yǔ)言的上下文里討論依賴倒置原則的時(shí)候,耦合的概念包括語(yǔ)義和物理兩種。依賴倒置原則和依賴注入都是關(guān)注依賴,并且都是用于反轉(zhuǎn)。 前言 本章我們要講解的是S.O.L.I.D五大原則JavaScript語(yǔ)言實(shí)現(xiàn)的第5篇,依賴倒置原則LSP(The Dependency Invers...

    chenjiang3 評(píng)論0 收藏0
  • 這次,徹底弄懂接口及抽象類

    摘要:更多關(guān)于接口和抽象類的概念知識(shí),可自行查閱相關(guān)文檔。抽象類及其作用抽象類,顧名思義,即類的抽象。而接口是對(duì)行為的抽象,表達(dá)的是的關(guān)系。相比于抽象類,接口能最大限度的減少對(duì)外暴露的接口,并隱藏細(xì)節(jié),更符合這一原則。 showImg(https://segmentfault.com/img/bVbkOJy?w=1295&h=595); 作者:伯特出處:github.com/ruicbAnd...

    singerye 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<