大战熟女丰满人妻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接口教程之后,或許會有更深的感悟。


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

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 一级毛片看看 | 青青草a| 凹凸精品视频分类国产品免费 | 国产欧美曰韩一区二区三区 | 被公侵犯肉体中文字幕一区二区 | 99久热| 免费一级毛片免费播放 | 亚洲精品动漫一区二区三区在线 | 日本一区二区三区高清在线观看 | 日韩欧美色视频在线观看 | 色爱区综合激情五月综合激情 | 欧美日韩色黄大片在线视频 | 欧洲国产伦久久久久久久 | 欧美人成人亚洲专区中文字幕 | 免费国产97久久青草 | 日本一区二区三区免费看 | 美女视频很黄很暴黄是免费的 | 国产在线精品一区二区高清不卡 | 亚洲色婷婷综合开心网 | 日韩精品大片 | 精品欧美一区二区三区在线观看 | 国产中文字幕亚洲 | 中文字幕亚洲无线码在线一区 | 久久香蕉国产线看观看精品蕉 | 天天躁狠狠躁狠狠躁夜夜躁 | 国自产拍在线视频天天更新 | 天天摸天天操免费播放小视频 | 国产一级影视 | 国产亚洲精品美女2020久久 | 狠狠干狠| 特级毛片免费观看视频 | 日日射视频 | 看全色黄大色黄大片 视 | 亚洲欧美日韩综合 | 91精品久久久久含羞草 | 国产精品欧美一区二区 | 亚洲免费在线观看 | 亚洲国产精品久久久久久 | 久久精品免费观看视频 | 精品麻豆 | 91成人影院未满十八勿入 |