卖逼视频免费看片|狼人就干网中文字慕|成人av影院导航|人妻少妇精品无码专区二区妖婧|亚洲丝袜视频玖玖|一区二区免费中文|日本高清无码一区|国产91无码小说|国产黄片子视频91sese日韩|免费高清无码成人网站入口

java是什么 什么是多態(tài)?面向?qū)ο蟪绦蛟O(shè)計(jì)為什么要引入多態(tài)的特性?使用多態(tài)有什么優(yōu)點(diǎn)?

什么是多態(tài)?面向?qū)ο蟪绦蛟O(shè)計(jì)為什么要引入多態(tài)的特性?使用多態(tài)有什么優(yōu)點(diǎn)?多態(tài)性是多個(gè)狀態(tài)。例如,有一個(gè)超類,它有兩個(gè)子類,子類1和子類2。超類有一個(gè)方法func(),它由兩個(gè)子類重寫。然后我們可以定義

什么是多態(tài)?面向?qū)ο蟪绦蛟O(shè)計(jì)為什么要引入多態(tài)的特性?使用多態(tài)有什么優(yōu)點(diǎn)?

多態(tài)性是多個(gè)狀態(tài)。

例如,有一個(gè)超類,它有兩個(gè)子類,子類1和子類2。

超類有一個(gè)方法func(),它由兩個(gè)子類重寫。

然后我們可以定義一個(gè)超類引用obj來指向一個(gè)子類對象,比如超類obj=new subclass 1();然后我們調(diào)用目標(biāo)函數(shù)當(dāng)使用()方法時(shí),它將被動(dòng)態(tài)綁定,即obj其實(shí)際類型的func()方法,即子類1的func()方法。

同樣,您可以編寫超類obj=new subclass 2();目標(biāo)函數(shù)()實(shí)際調(diào)用子類2的func()方法。

由于子類重寫父類的方法,然后指向引用父類的子類對象,所以調(diào)用方法時(shí)會(huì)進(jìn)行動(dòng)態(tài)綁定,稱為多態(tài)性。

多態(tài)性在程序擴(kuò)展中起著非常重要的作用。例如,如果你想有一個(gè)子類3,你需要改變很多少。如果使用配置文件,則可以保持源代碼不變。

為什么多態(tài)調(diào)用方法必須在運(yùn)行時(shí)才能確定?

我考慮過這個(gè)問題。我想簡要地談?wù)勎业目捶āH绻绣e(cuò)誤,請改正。

這個(gè)問題與多態(tài)性的實(shí)現(xiàn)機(jī)制有關(guān)。對于Java,多態(tài)性調(diào)用和普通方法調(diào)用沒有區(qū)別,也沒有額外的開銷,所以不管是在編譯時(shí)還是在運(yùn)行時(shí)確定。然而,對于C,C的多態(tài)性機(jī)制是基于虛擬表的。必須在運(yùn)行時(shí)確定。這也是為什么C多態(tài)性正在減少的原因。它需要額外的成本,但這樣做的目的是使投訴C兼容。

多態(tài)的好處?

1. 改進(jìn)代碼維護(hù)(繼承保證)2、提高代碼可伸縮性(多態(tài)保證)多態(tài)性:相同的操作作用于不同的對象,可以有不同的解釋,產(chǎn)生不同的執(zhí)行結(jié)果。在運(yùn)行時(shí),可以通過指向基類的指針調(diào)用派生類中的方法。擴(kuò)展數(shù)據(jù)多態(tài)性:將不同的子類對象作為父類處理,可以屏蔽不同子類對象之間的差異,編寫通用代碼,進(jìn)行通用編程,以適應(yīng)不斷變化的需求。賦值后,父類型的引用可以根據(jù)當(dāng)前分配給它的子對象的特性以不同的方式進(jìn)行操作。也就是說,父親的行為像兒子,兒子的行為不像父親。

為什么多態(tài)下不能調(diào)用子類特有方法?

Animal a=new dog()//聲明對父類的引用,指向子類對象。//子類繼承自父類,并且子類在父類中具有非私有屬性和方法。//無法調(diào)用子類引用的子類指針。//所以如果(dog的一個(gè)實(shí)例){dog dog=(dog)a狗??矗ǎ?/使用子類引用調(diào)用子類方法。}