大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動(dòng)力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 探究接口和多態(tài)關(guān)系

探究接口和多態(tài)關(guān)系

更新時(shí)間:2020-10-29 17:47:21 來源:動(dòng)力節(jié)點(diǎn) 瀏覽1350次

Java中多態(tài)是個(gè)很難理解的概念,但同時(shí)又是非常重要的概念。多態(tài)存在的三個(gè)必要條件一、要有繼承;二、要有重寫;三、父類引用指向子類對象。我們從字面上理解,就是一種類型的多種狀態(tài),想要理解多態(tài)我們就不得不借用接口。本文我們就來探究接口和多態(tài)關(guān)系


接口(interface)是抽象方法與常量值的集合;從本質(zhì)上來講,接口是一種特殊的抽象類,這種抽象類中只包含常量與方法的定義,而沒有變量和方法的實(shí)現(xiàn);與繼承關(guān)系類似,接口與實(shí)現(xiàn)類之間存在多態(tài)性。


我們先來看看多態(tài)的特性:

1.可替換性(substitutability)。多態(tài)對已存在代碼具有可替換性。

2.可擴(kuò)充性(extensibility)。多態(tài)對代碼具有可擴(kuò)充性。增加新的子類不影響已存在類的多態(tài)性、繼承性,以及其他特性的運(yùn)行和操作。實(shí)際上新加子類更容易獲得多態(tài)功能。

3.接口性(interface-ability)。多態(tài)是超類通過方法簽名,向子類提供了一個(gè)共同接口,由子類來完善或者覆蓋它而實(shí)現(xiàn)的。

4.靈活性(flexibility)。它在應(yīng)用中體現(xiàn)了靈活多樣的操作,提高了使用效率。

5.簡化性(simplicity)。多態(tài)簡化對應(yīng)用軟件的代碼編寫和修改過程,尤其在處理大量對象的運(yùn)算和操作時(shí),這個(gè)特點(diǎn)尤為突出和重要。


Java中多態(tài)的實(shí)現(xiàn)方式:

1.接口實(shí)現(xiàn)

2.繼承父類進(jìn)行方法重寫

3.同一個(gè)類中進(jìn)行方法重載。


無論工作還是學(xué)習(xí)中,筆都是我們經(jīng)常用到的工具。但是筆的種類又非常的繁多,鉛筆、簽字筆、水筆、毛筆、鋼筆...?,F(xiàn)在我們要對“筆”進(jìn)行抽象,抽象成一個(gè)抽象父類“Pen”

package com.glmapper.demo.base;

/**

* 抽象父類:筆

* @author glmapper

*/

public abstract class Pen {

//筆的長度

private int length;

//顏色

private String color;

//類型

private String type;

//價(jià)格

private double price;

//寫字

public abstract void write(String cnt);

public int getLength() {

return length;

}

public void setLength(int length) {

this.length = length;

}

public String getColor() {

return color;

}

public void setColor(String color) {

this.color = color;

}

public String getType() {

return type;

}

public void setType(String type) {

this.type = type;

}

public double getPrice() {

return price;

}

public void setPrice(double price) {

this.price = price;

}

}現(xiàn)在有兩個(gè)子類,分別是:鉛筆和鋼筆。

鉛筆類,繼承父類Pen,并重寫write方法

package com.glmapper.demo.base;

/**

* 鉛筆類 繼承父類 筆(滿足必要條件一:有繼承【其實(shí)如果是接口的話,implement實(shí)現(xiàn)也是可以的】)

* @author glmapper

*

*/

public class Pencil extends Pen{

/**

* 父類的抽象方法委托子類具體實(shí)現(xiàn):覆蓋

*/

//滿足必要條件二:要有重寫【當(dāng)然,如果是對于write有重載也是可以的,不同的概念而已】

@Override

public void write(String cnt) {

System.out.println("這是一只鉛筆寫的內(nèi)容,內(nèi)容是:"+cnt);

}

}

鋼筆類,繼承父類Pen,并重寫write方法

package com.glmapper.demo.base;

/**

* 鋼筆類 繼承父類 筆

* @author 17070738

*

*/

public class Fountainpen extends Pen{

@Override

public void write(String cnt) {

System.out.println("這是一支鋼筆寫的內(nèi)容,內(nèi)容是:"+cnt);

}

}


測試:

package com.glmapper.demo.base;

public class MainTest {

public static void main(String[] args) {

/* Pen pen= new Pencil();*/

//必要條件三:父類引用指向子類對象。

Pen pen= new Fountainpen();

pen.write("我是一支筆");

}

}

輸出結(jié)果:這是一支鋼筆寫的內(nèi)容,內(nèi)容是:我是一支筆

說明可替換性:多態(tài)對筆Pen類工作,對其他任何子類,如鉛筆、鋼筆,也同樣工作??蓴U(kuò)充性:在實(shí)現(xiàn)了鉛筆、鋼筆的多態(tài)基礎(chǔ)上,很容易增添“筆”類的多態(tài)性。


總而言之,接口和多態(tài)關(guān)系用一句話可以概括,接口和抽象類都是多態(tài)。假設(shè)我要拿遙控器打開電器,接口和抽象類多態(tài)的側(cè)重點(diǎn)不同。接口的側(cè)重點(diǎn)在遙控器,多態(tài)的側(cè)重點(diǎn)在電器。


通過上面的實(shí)例,我們知道了接口和多態(tài)關(guān)系微妙,接口可以看作是多態(tài),而多態(tài)的實(shí)現(xiàn)方式又需要借助接口。想要徹底弄清楚多態(tài)和接口關(guān)系,我們在觀看完本站的Java接口教程之后,或許會(huì)有更深的感悟。


提交申請后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)

免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 日韩精品特黄毛片免费看 | 国产在线自在拍91精品黑人 | 亚洲国产精品久久日 | 九九九影院 | 欧美性一区二区三区五区 | 亚洲欧美精品国产一区色综合 | 色姑娘综合网 | 欧美日日 | 精品玖玖玖视频在线观看 | 国产影片中文字幕 | 日日摸夜夜添夜夜添欧美毛片 | 欧美成人看片 | 97在线观看中心 | 色婷婷5月精品久久久久 | 亚洲精品色播一区二区 | 夜精品a一区二区三区 | 四虎网址在线观看 | 国产成人免费不卡在线观看 | 97se亚洲综合在线 | 国产欧美精品专区一区二区 | 亚洲精品美女久久久久99 | 国产护士资源总站 | 青草青草久热精品视频在线观看 | 久久99热精品免费观看k影院 | 夜夜夜爽爽爽久久久 | 欧美7777| 在线播放成人毛片免费视 | 国产性色视频 | 久久97久久97精品免视看清纯 | 毛片毛片免费看 | 婷婷色在线观看 | 99国产超薄丝袜足j在线播放 | 亚洲综合激情六月婷婷在线观看 | 亚洲欧美自拍一区 | 久久精品中文字幕不卡一二区 | 日日天干夜夜人人添 | 亚洲视频在线免费播放 | 成人中文字幕一区二区三区 | 香蕉视频一区二区三区 | 久久99国产精品久久 | 爱性网|