黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 探究接口和多態關系

探究接口和多態關系

更新時間:2020-10-29 17:47:21 來源:動力節點 瀏覽1345次

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


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


我們先來看看多態的特性:

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

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

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

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

5.簡化性(simplicity)。多態簡化對應用軟件的代碼編寫和修改過程,尤其在處理大量對象的運算和操作時,這個特點尤為突出和重要。


Java中多態的實現方式:

1.接口實現

2.繼承父類進行方法重寫

3.同一個類中進行方法重載。


無論工作還是學習中,筆都是我們經常用到的工具。但是筆的種類又非常的繁多,鉛筆、簽字筆、水筆、毛筆、鋼筆...。現在我們要對“筆”進行抽象,抽象成一個抽象父類“Pen”

package com.glmapper.demo.base;

/**

* 抽象父類:筆

* @author glmapper

*/

public abstract class Pen {

//筆的長度

private int length;

//顏色

private String color;

//類型

private String type;

//價格

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;

}

}現在有兩個子類,分別是:鉛筆和鋼筆。

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

package com.glmapper.demo.base;

/**

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

* @author glmapper

*

*/

public class Pencil extends Pen{

/**

* 父類的抽象方法委托子類具體實現:覆蓋

*/

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

@Override

public void write(String cnt) {

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

}

}

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

package com.glmapper.demo.base;

/**

* 鋼筆類 繼承父類 筆

* @author 17070738

*

*/

public class Fountainpen extends Pen{

@Override

public void write(String cnt) {

System.out.println("這是一支鋼筆寫的內容,內容是:"+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("我是一支筆");

}

}

輸出結果:這是一支鋼筆寫的內容,內容是:我是一支筆

說明可替換性:多態對筆Pen類工作,對其他任何子類,如鉛筆、鋼筆,也同樣工作。可擴充性:在實現了鉛筆、鋼筆的多態基礎上,很容易增添“筆”類的多態性。


總而言之,接口和多態關系用一句話可以概括,接口和抽象類都是多態。假設我要拿遙控器打開電器,接口和抽象類多態的側重點不同。接口的側重點在遙控器,多態的側重點在電器。


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


提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 国产综合视频在线 | 中文精品北条麻妃中文 | 51自拍| 日韩视频免费在线 | a级午夜毛片免费一区二区 a级午夜理论免费毛片 | 91精品欧美产品免费观看 | 国产日产欧产美一二三区 | 羞羞视频网页版 | 极品国产高颜值露脸在线 | 涩涩资源| 91青草久久久久久清纯 | 天堂视频在线 | 污视频网站在线免费看 | 日本无翼乌邪恶彩色大全 | www.亚洲一区 | 情侣黄网站免费看 | 成人福利在线视频免费观看 | 免费观看性欧美一级 | 欧美中文在线视频 | 日韩第3页 | 免费黄色a| 国产黄a三级三级三级 | 欧日韩美香蕉在线观看 | 老司机深夜影院入口aaaa | 99久久综合狠狠综合久久 | 亚洲精品一卡2卡3卡三卡四卡 | 欧美亚洲视频在线观看 | 国产精品视频第一区二区 | 最近中文字幕免费mv视频8 | 天天爽夜夜爽人人爽 | 免费深夜福利 | 日韩精品导航 | 天天操夜夜操视频 | 成人在线综合网 | 三级经典欧美激情 | 夜夜爽爽| 天天摸天天碰天天爽天天弄 | 一个人看的www在线 一个人看的www在线播放 | 欧美在线播放成人a | 一区二区视频在线观看免费的 | 天天草夜夜爽 |