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

java是什么 什么是多態(tài)?面向對象程序設計為什么要引入多態(tài)的特性?使用多態(tài)有什么優(yōu)點?

什么是多態(tài)?面向對象程序設計為什么要引入多態(tài)的特性?使用多態(tài)有什么優(yōu)點?多態(tài)性是多個狀態(tài)。例如,有一個超類,它有兩個子類,子類1和子類2。超類有一個方法func(),它由兩個子類重寫。然后我們可以定義

什么是多態(tài)?面向對象程序設計為什么要引入多態(tài)的特性?使用多態(tài)有什么優(yōu)點?

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

例如,有一個超類,它有兩個子類,子類1和子類2。

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

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

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

由于子類重寫父類的方法,然后指向引用父類的子類對象,所以調用方法時會進行動態(tài)綁定,稱為多態(tài)性。

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

為什么多態(tài)調用方法必須在運行時才能確定?

我考慮過這個問題。我想簡要地談談我的看法。如果有錯誤,請改正。

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

多態(tài)的好處?

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

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

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