成人AV在线无码|婷婷五月激情色,|伊人加勒比二三四区|国产一区激情都市|亚洲AV无码电影|日av韩av无码|天堂在线亚洲Av|无码一区二区影院|成人无码毛片AV|超碰在线看中文字幕

java中是怎么實(shí)現(xiàn)多態(tài)的 什么是多態(tài)?java中如何實(shí)現(xiàn)多態(tài)?

什么是多態(tài)?java中如何實(shí)現(xiàn)多態(tài)?多態(tài)性分為編譯時(shí)多態(tài)性和運(yùn)行時(shí)多態(tài)性。1.編譯時(shí)多態(tài)性實(shí)際上是一種函數(shù)名相同但簽名不同的方法重載。值得注意的是,簽名不包括方法返回值。換句話說(shuō),兩個(gè)方法有相同的函數(shù)

java中是怎么實(shí)現(xiàn)多態(tài)的 什么是多態(tài)?java中如何實(shí)現(xiàn)多態(tài)?

什么是多態(tài)?java中如何實(shí)現(xiàn)多態(tài)?

多態(tài)性分為編譯時(shí)多態(tài)性和運(yùn)行時(shí)多態(tài)性。

1.編譯時(shí)多態(tài)性實(shí)際上是一種函數(shù)名相同但簽名不同的方法重載。值得注意的是,簽名不包括方法返回值。換句話說(shuō),兩個(gè)方法有相同的函數(shù)名和參數(shù),但返回值不同,編譯器返回錯(cuò)誤。

2.運(yùn)行時(shí)多態(tài)性實(shí)際上與繼承和接口實(shí)現(xiàn)有關(guān)。子類(lèi)可以重寫(xiě)父類(lèi)的非最終、非靜態(tài)、非私有方法,或者實(shí)現(xiàn)接口方法。在運(yùn)行時(shí),將實(shí)例動(dòng)態(tài)綁定到父類(lèi)或接口的引用,那么jvm如何知道調(diào)用哪個(gè)子類(lèi)的實(shí)例的對(duì)應(yīng)方法呢?這是你問(wèn)的問(wèn)題。在——Java中,對(duì)象在jvm中有描述元數(shù)據(jù)。對(duì)象頭和當(dāng)前實(shí)例的類(lèi)型信息存儲(chǔ)在對(duì)象頭中。調(diào)用時(shí),jvm可以根據(jù)這個(gè)類(lèi)型準(zhǔn)確地找出使用哪個(gè)子類(lèi)方法。

什么是多態(tài)?java中如何實(shí)現(xiàn)多態(tài)?

百度搜索圈T社區(qū)免費(fèi)行業(yè)視頻教程

多態(tài)性意味著重載和重寫(xiě)。重載發(fā)生在一個(gè)類(lèi)中。重寫(xiě)發(fā)生在子類(lèi)中,這意味著子類(lèi)重寫(xiě)了父類(lèi)的相同名稱(chēng)。你不用那么清楚自己剛學(xué)了一門(mén)語(yǔ)言是什么,知道怎么用就行了。要想真正理解一些問(wèn)題,短時(shí)間內(nèi)是不可能的,比如接口。沒(méi)有幾年的工作經(jīng)驗(yàn),你是無(wú)法真正理解什么是接口的,甚至有些人工作了四五年都沒(méi)搞清楚。

重載的功能具有相同的方法名。返回的類(lèi)型有不同的參數(shù)(包括數(shù)字和類(lèi)型)。

重寫(xiě)具有相同的特征、方法名、返回類(lèi)型和參數(shù),并且必須出現(xiàn)在子類(lèi)中。

該語(yǔ)言允許某種類(lèi)型的引用變量引用子類(lèi)的實(shí)例,并可以對(duì)該引用變量進(jìn)行類(lèi)型轉(zhuǎn)換。

animal animal=new Dog() //引用變量Animal引用一個(gè)Animal子類(lèi)Dog的實(shí)例。

Dog Dog=(Dog)Animal //將動(dòng)物類(lèi)型轉(zhuǎn)換為狗類(lèi)型。

生物創(chuàng)造=動(dòng)物//向上轉(zhuǎn)化,將動(dòng)物型轉(zhuǎn)化為創(chuàng)造型。

Animal=new Cat() //引用變量Animal引用另一個(gè)animal子類(lèi)Cat的實(shí)例。

注:這里的生物是指生物。

2.如果引用變量轉(zhuǎn)換為子類(lèi)類(lèi)型,則稱(chēng)為向下轉(zhuǎn)換;如果引用變量被轉(zhuǎn)換為父類(lèi)類(lèi)型,則稱(chēng)為向上轉(zhuǎn)換。

3.在轉(zhuǎn)換參考變量的類(lèi)型時(shí),會(huì)有各種限制。而且在通過(guò)引用變量訪問(wèn)它所引用的實(shí)例的靜態(tài)屬性、靜態(tài)方法、實(shí)例屬性、實(shí)例方法,以及從父類(lèi)繼承的方法和屬性時(shí),Java虛擬機(jī)采用了不同的綁定機(jī)制。

4.成員變量和靜態(tài)方法根據(jù)引用變量聲明的類(lèi)型進(jìn)行靜態(tài)綁定;實(shí)例方法是根據(jù)引用變量引用的實(shí)例動(dòng)態(tài)綁定的。

例如,對(duì)于以下代碼:

父親f=新兒子()

(quot;quot; )

(quot;quot; )

()

()

運(yùn)行時(shí)將輸出以下結(jié)果:

兒子法

靜態(tài)父方法

班級(jí)父親{

字符串變量=

什么是多態(tài)?java中如何實(shí)現(xiàn)多態(tài)?

如果父類(lèi)指針指向子類(lèi)對(duì)象,那么它就是多態(tài)的。

比如A是父類(lèi),B和C都繼承自A。

B b=新B()

所以A a=b

它是多態(tài)的。