多型(事物存在的多種體現形態)

2021-08-15 10:19:43 字數 2880 閱讀 7849

什麼是介面

a.可以認為是乙個特殊的抽象類

b.當抽象類中的方法都是抽象的那麼該類可以通過介面的形式實現

c.乙個類可以實現多個介面

d.當子類對介面中的方法全部實現覆蓋後子類才可以例項化,否則子類是乙個抽象類

e.不可以實現多繼承是因為父類的方法有重複,而介面中的方法都是抽象方法

f.介面亦可以實現多繼承

介面的特點

基本功能在類中,擴充套件功能在介面中。

父類的引用可以接受自己子類的物件

animal a= new cat();//型別提公升

cat c = (cat) a; //轉成子型別

必須是類和類之間的關係(存在覆蓋)

a.繼承

b.實現

/*應用一  電腦執行例項

電腦執行依靠主機板

*/inte***ce

pciclass

netcard

implements

pcipublic

void close()

}class

soundcard

implements

pcipublic

void close()

}class

mainboard

public

void usepci(pci p) //pci p =new netcard();介面型物件指向自己的子類物件

}public

class

duotaidemo5

/*應用二  模擬物流快遞系程式設計

1.任務描述 網購成為人們生活的一部分,當人們在購物**中下訂單後,訂單中的貨物就會在一系列的流程後送到客戶手中。

2.實現思路

1)定義乙個抽象的交通工具類,類中包含交通工具的編號,型號以及運貨負責人等屬性,還要定義乙個抽象的運輸方法。

2)運輸完成後需要對工具進行保養。所以定義保養介面

3)定義乙個專用運輸車類,繼承交通工具類

4)定義乙個快遞任務類,包含快遞單號,貨物重量以及發貨前和發貨後的方法。

5)定義乙個gps介面,以及實現該介面的儀器類(如iphone等)

*/abstract class transportation

//構造方法

public

transportation(string number, string model, string admin)

//運輸方法。

public

abstract

void

transport();

//編號

public

void

setnumber(string number)

public string getnumber()

//型號

public

void

setmodel()

public string getmodel()

//送貨員

public

void

setadmin()

public string getadmin()

} //定義交通工具保養介面careable

inte***ce careable

//定義專用運輸車類

class ztransportation extends transportation implements careable

//有參構造:車輛編號,型號,負責人

public

ztransportation(string number, string model, string admin)

//運輸方法

public

void

transport()

public

void

upkeep()

} //定義快遞任務類sendtask

class sendtask

public

sendtask(string number, double goodsweight)

//送前準備

public

void

sendbefore()

//傳送貨物

public

void

send( transportation t, gps tool)

//送後操作

public

void

sendafter(transportation t)

public string getnumber()

public

void

setnumber()

public

double

getgoodsweight()

public

void

setgoodsweight()

} //定義介面gps並且用類iphone類實現

inte***ce gps

//實現類iphone

class iphone implements gps

public string showcoordinate()

} //定義測試類

public

class transportationtest

}

提高了擴充套件性,但只能引用父類的引用訪問父類中的成員。

if (a instanceof cat) {}

if (a instanceof dog) {}

JAVA多型的體現

多型是通過 1 介面 和 實現介面並覆蓋介面中同一方法的幾不同的類體現的 2 父類 和 繼承父類並覆蓋父類中同一方法的幾個不同子類實現的.多型有兩種表現形式 方法的過載和類的重寫 覆寫 首先說過載 overload 是發生在同一類中。與什麼父類子類 繼承毫無關係。標識乙個函式除了函式名外,還有函式的...

多型的應用體現

多型的應用體現例項 package bxdstudy public class duotai 這個類是使得無論基礎生還是優等生都可以呼叫方法 class dostudent 學生類 抽象的 abstract class student 基礎生繼承 class basestudent extends ...

Java多型的體現 轉型

子類的物件賦值給父類的引用 student s new student person p s 也就是person p new student 乙個引用能夠呼叫哪些成員 變數和方法 取決於這個引用的型別 即父類 乙個引用呼叫的是哪乙個方法,取決於這個引用所指的物件 即子類 將父類的物件賦值給子類的引用...