最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

150天打卡day17_詳解接口的使用

2021-04-27 11:15 作者:關(guān)阿姨的Java日記  | 我要投稿

why

在Java中,可以通過(guò)兩種形式來(lái)體現(xiàn)OOP的抽象:接口和抽象類(lèi)。這兩者有太多相似的地

方,又有太多不同的地方。

?

案例

飛機(jī)和鳥(niǎo)是不同類(lèi)的事物,但是它們都有一個(gè)共性,就是都會(huì)飛。那么在設(shè)計(jì)的時(shí)候,可以將

飛機(jī)設(shè)計(jì)為一個(gè)類(lèi)Airplane,將鳥(niǎo)設(shè)計(jì)為一個(gè)類(lèi)Bird,但是不能將 飛行 這個(gè)特性也設(shè)計(jì)為類(lèi),

因此它只是一個(gè)行為特性,并不是對(duì)一類(lèi)事物的抽象描述。

類(lèi)描述對(duì)象的屬性和方法。接口則包含類(lèi)必須要實(shí)現(xiàn)的方法,是對(duì)行為的抽象所以通常我們說(shuō)

接口是一種約束。

接口,英文稱(chēng)作interface,在軟件工程中,接口泛指供別人調(diào)用的方法或者函數(shù)。

接口的定義

接口(Interface)接口可以看成是特殊的抽象類(lèi),只包含抽象方法的抽象類(lèi)。接口并不是類(lèi),

編寫(xiě)接口的方式和類(lèi)很相似,但是屬于不同的概念,類(lèi)描述對(duì)象的屬性和行為,接口則包含類(lèi)

要實(shí)現(xiàn)的方法。

  • 接口的特性

    • 接口中的每一個(gè)方法都會(huì)被隱式的指定為公開(kāi)的抽象方法

    • 接口中不能放實(shí)例變量,只能放置靜態(tài)常量

    • 接口中的方法不能在接口中實(shí)現(xiàn),只能在類(lèi)中實(shí)現(xiàn)

  • 案例貫穿

本例要求實(shí)現(xiàn)銀行卡系統(tǒng)的銀聯(lián)接口,詳細(xì)要求如下:

  • 銀聯(lián)接口,用于描述銀聯(lián)統(tǒng)一制定的規(guī)則,該接口提供檢測(cè)密碼方法、取錢(qián)方法以及查詢(xún)余額方法。

  • 工商銀行接口,用于描述工商銀行發(fā)行的卡片功能,在滿(mǎn)足銀聯(lián)接口的規(guī)則基礎(chǔ)上,增加了在線支付功能。

  • 農(nóng)業(yè)銀行接口,用于描述中國(guó)農(nóng)業(yè)銀行發(fā)行的卡片功能,在滿(mǎn)足銀聯(lián)接口的規(guī)則基礎(chǔ)上,增加了支付電話(huà)費(fèi)的功能。另外,農(nóng)行的卡的卡內(nèi)余額,允許最多透支2000。

  • 實(shí)現(xiàn)工商銀行接口和農(nóng)業(yè)銀行接口,并進(jìn)行測(cè)試。

一、定義一個(gè)接口

接口通過(guò)interface關(guān)鍵字來(lái)定義接口

修飾符 interface 接口名稱(chēng)

案列:

  • 步驟一:定義銀聯(lián)接口

定義名為Unionpay的銀聯(lián)接口,用于描述銀聯(lián)統(tǒng)一制定的規(guī)則:然后在該接口中定義

getBalance方法來(lái)獲取余額功能,定義getgetMoney表示取錢(qián)功能,定義checkPwd來(lái)檢查密

碼功能

  • 接口總結(jié):

    • 接口是隱式抽象的,當(dāng)聲明一個(gè)接口的時(shí)候,不用使用abstract關(guān)鍵字

    • 接口中不可以定義成員變量,但可以定義常量

    • 接口中只可以定義抽象方法,但是可以省略abstract

    • 接口中的方法都是公有的

二、接口的繼承

一個(gè)接口能繼承另一個(gè)接口,和類(lèi)之間的繼承方法比較相似,接口的繼承使用extends關(guān)鍵

字,子接口父接口中的方法

案列

  • 步驟二:定義工商銀行接口

定義名為ICBC的工商銀行接口,用于描述中國(guó)工商銀行發(fā)行的卡片功能,該接口實(shí)現(xiàn)需要滿(mǎn)

足銀聯(lián)接口的功能,因此繼承銀聯(lián)接口,而且該接口在具備銀聯(lián)接口的功能基礎(chǔ)上,要求增加

在線支付功能,所以在接口中定義payOnLine方法

  • 步驟三:定義農(nóng)商銀行接口

定義名為ABC的農(nóng)商銀行接口,用于描述農(nóng)商銀行發(fā)行的卡片功能,該接口實(shí)現(xiàn)需要滿(mǎn)足銀聯(lián)

接口的功能,因此也繼承銀聯(lián)接口,而且在具備銀聯(lián)接口的功能基礎(chǔ)上,要求增加支付電話(huà)費(fèi)

功能,所以在接口中定義PayTelTelBill方法

  • 接口的繼承總結(jié)

    • 接口間存在繼承關(guān)系

    • 一個(gè)接口可以通過(guò)extends關(guān)鍵字來(lái)繼承另一個(gè)接口,子接口繼承了父接口中定義的所有方法。

    • 接口可以多繼承

三、實(shí)現(xiàn)接口

接口是抽象的,沒(méi)有具體的實(shí)現(xiàn),需要由類(lèi)來(lái)實(shí)現(xiàn),接口的實(shí)現(xiàn)用implements關(guān)鍵字來(lái)實(shí)現(xiàn)

放在class關(guān)鍵字的后面,一個(gè)類(lèi)實(shí)現(xiàn)了某接口后,必須實(shí)現(xiàn)接口中的抽象方法,否則這個(gè)類(lèi)

必須聲明為抽象類(lèi)。

語(yǔ)法:

class 類(lèi)名 implements 接口名,接口名{}

案列:

  • 步驟四:實(shí)現(xiàn)工商銀行接口

定義名為ICBCImpl的類(lèi),該類(lèi)實(shí)現(xiàn)ICBC接口:另外,分析問(wèn)題中的取錢(qián)功能,需要對(duì)余額信息進(jìn)行存儲(chǔ),插入卡片以后需要輸入密碼后才能進(jìn)行取錢(qián),因此,在ICBCImpl類(lèi)中定義double類(lèi)型屬性money表示賬戶(hù)余額以及String類(lèi)型屬性pwd表示卡片的密碼


??

  • 步驟五:實(shí)現(xiàn)農(nóng)商銀行接口

實(shí)現(xiàn)農(nóng)業(yè)銀行接口的過(guò)程和實(shí)現(xiàn)工行接口的過(guò)程類(lèi)似,實(shí)現(xiàn)的過(guò)程中注意,農(nóng)行卡內(nèi)余額可以透支2000.

  • 步驟六:測(cè)試


  • 接口的實(shí)現(xiàn)總結(jié)

    • 類(lèi)在重寫(xiě)方法時(shí)要保持一致的方法名,和參數(shù)類(lèi)型以及返回值

    • 如果實(shí)現(xiàn)接口的類(lèi)是抽象類(lèi),那么就沒(méi)必要實(shí)現(xiàn)該接口的方法

    • 一個(gè)類(lèi)可以同時(shí)實(shí)現(xiàn)多個(gè)接口

    • 一個(gè)類(lèi)只能繼承一個(gè)類(lèi),但是能實(shí)現(xiàn)多個(gè)接口

    • 接口不能實(shí)例化

四、接口和類(lèi)的區(qū)別

  • 相同點(diǎn)

    • 接口和類(lèi)都可以有多個(gè)方法

    • 接口和類(lèi)文件都保存在.java的文件中,字節(jié)碼文件都是.class文件

  • 不同點(diǎn)

    • 接口不能實(shí)例化對(duì)象

    • 接口沒(méi)有構(gòu)造方法

    • 接口中的所有的方法都必須是抽象方法

    • 接口中不能放置實(shí)例變量,但是可以放置靜態(tài)常量

    • 接口可以繼承接口,但是需要被類(lèi)實(shí)現(xiàn)

    • 接口支持多繼承

五、抽象類(lèi)和接口的區(qū)別

  • 抽象類(lèi)中可以有方法體,接口中不行

  • 抽象類(lèi)中的成員變量可以是各種類(lèi)型,但是接口中不行,只能是靜態(tài)常量

  • 抽象類(lèi)中可以有靜態(tài)代碼塊和靜態(tài)方法,但是接口不能有靜態(tài)代碼塊和靜態(tài)方法

  • 一個(gè)類(lèi)只能繼承一個(gè)抽象類(lèi),但是一個(gè)類(lèi)可以實(shí)現(xiàn)多個(gè)接口

?

接口代碼應(yīng)用案例

歡迎??點(diǎn)贊+關(guān)注,筆芯??


150天打卡day17_詳解接口的使用的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
沅陵县| 米泉市| 墨脱县| 宁安市| 炎陵县| 察哈| 屏边| 溧阳市| 乌海市| 正阳县| 惠州市| 天柱县| 昌江| 谢通门县| 鄯善县| 迁西县| 文昌市| 体育| 来凤县| 甘洛县| 寻乌县| 徐汇区| 上蔡县| 嫩江县| 弥勒县| 阳原县| 仙游县| 中西区| 怀化市| 改则县| 柘城县| 丰县| 武鸣县| 许昌县| 巴彦县| 于田县| 林州市| 扎兰屯市| 德兴市| 雅安市| 哈密市|