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

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ù)名相同,但簽名不一樣。值得注意的是,簽名不包括方法的返回值。換句話說,這兩個(gè)方法的函數(shù)名和輸入?yún)?shù)是相同的,但返回值不同。

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

1. 編譯時(shí)多態(tài)性,其實(shí)是方法重載,函數(shù)名相同,但簽名不一樣。值得注意的是,簽名不包括方法的返回值。換句話說,這兩個(gè)方法的函數(shù)名和輸入?yún)?shù)是相同的,但返回值不同。編譯器返回錯(cuò)誤。

2. 運(yùn)行時(shí)多態(tài)性實(shí)際上與繼承和接口實(shí)現(xiàn)有關(guān)。子類可以重寫父類的非最終、非靜態(tài)、非私有方法或?qū)崿F(xiàn)接口方法。JVM如何知道要調(diào)用哪個(gè)子類實(shí)例的對應(yīng)方法?這就是你問的問題。在Java中,對象在JVM中有描述元數(shù)據(jù)。對象頭存儲當(dāng)前實(shí)例的類型信息。在調(diào)用時(shí),JVM可以根據(jù)這個(gè)類型準(zhǔn)確地找出要使用的子類方法。

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

是的,這就是多態(tài)性。接口實(shí)現(xiàn)的多態(tài)性意味著接口userservice負(fù)責(zé)定義方法的名稱、參數(shù)列表和返回值,而不管其具體實(shí)現(xiàn)如何。調(diào)用方userblh不需要知道誰實(shí)現(xiàn)了finduser和saveOrUpdate方法。它只需要知道userservice指針指向的對象已經(jīng)實(shí)現(xiàn)了這兩個(gè)方法,所以調(diào)用方userblh只調(diào)用它們。似乎您可能不知道如何在實(shí)現(xiàn)層(語言編譯技術(shù))中實(shí)現(xiàn)它。具體來說,1。方法實(shí)際上是一段可執(zhí)行代碼。接口userservice實(shí)際上定義了一個(gè)數(shù)據(jù)結(jié)構(gòu)(實(shí)際上,它是一個(gè)虛擬函數(shù)表),但沒有定義方法本身(也就是說,接口沒有定義可執(zhí)行代碼塊)。2接口userservice的子類userserviceinpl需要在構(gòu)造函數(shù)的表中填充一些內(nèi)容,這是子類userserviceinpl定義的可執(zhí)行代碼塊的入口地址。三。當(dāng)調(diào)用方userblh調(diào)用finduser方法時(shí),它通過查找虛擬函數(shù)表來找到finduser方法的地址并調(diào)用它。給出一個(gè)圖來幫助從技術(shù)角度解釋如何實(shí)現(xiàn)多態(tài)性。(假設(shè)另一個(gè)類B也實(shí)現(xiàn)了接口userservice)