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

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

探究接口和多態關系

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

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


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


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

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

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

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

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

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


Java中多態的實現方式:

1.接口實現

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

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


無論工作還是學習中,筆都是我們經常用到的工具。但是筆的種類又非常的繁多,鉛筆、簽字筆、水筆、毛筆、鋼筆...?,F在我們要對“筆”進行抽象,抽象成一個抽象父類“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接口教程之后,或許會有更深的感悟。


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

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 91在线免费视频观看 | 人人干视频在线观看 | 精品久久久久久国产免费了 | 国产一区二区网站 | 亚洲黄色高清视频 | 中国jizz妇女jizz妇女 | 牛牛影院成人免费网页 | 亚洲人妖女同在线播放 | 高清国产天干天干天干不卡顿 | 深夜福利成人 | 成人爱爱爱欧美日本视频 | 91日本在线精品高清观看 | 夜夜精品视频 | 性大交| 国产色综合久久无码有码 | 精品在线99 | 国产爱| 欧美亚洲高清日韩成人 | 搞逼综合网 | 国产720刺激i在线视频 | a毛片全部免费播放 | 奇米第四色777 | 亚洲午夜一级毛片 | 99九九精品免费视频观看 | 一级毛片特黄久久免费看 | 精品色视频 | 亚洲国产一成人久久精品 | 中文字幕一区精品 | 日韩手机看片 | 午夜宅男免费完整在线观看 | 91极品视频在线观看 | 天天射天天草 | 人人操天天射 | 国产乱人免费视频 | 天天曰天天爽 | 337p色噜噜人体大胆欧美 | 久久999 | 久热精品视频在线播放 | 无遮挡一级毛片性视频不卡 | 久在线精品视频 | 欧美精品久久久久久久影视 |