多态定义、多态实现、多态分类。
1.多態(tài)定義:同一操作作用于不同的對(duì)象,可以有不同的解釋,產(chǎn)生不同的執(zhí)行結(jié)果,這就是多態(tài)性。簡(jiǎn)單的說:就是用基類的引用指向子類的對(duì)象。
2.如何實(shí)現(xiàn)多態(tài):C++中的多態(tài)只能通過指向基類類型的指針和引用來調(diào)用對(duì)象的虛函數(shù)來實(shí)現(xiàn)。
實(shí)現(xiàn)多態(tài)有三種方式:虛方法,抽象方法,接口。
?
虛方法:子類重寫父類中的方法,對(duì)父類中的方法進(jìn)行覆蓋。適用情況:父類中的方法對(duì)子類來說不適用,子類通過重寫該方法,覆蓋了父類中的方法。
抽象方法:子類重寫父類中的方法,父類中不對(duì)方法進(jìn)行實(shí)現(xiàn),在子類中進(jìn)行實(shí)現(xiàn),父類是抽象類。適用情況:針對(duì)同一種類型抽象出來的父類,對(duì)某些行為和屬性大家都是公有的,但是這些屬性和行為實(shí)現(xiàn)方式并不一致。
接口:實(shí)現(xiàn)接口的類,將接口中的方法實(shí)現(xiàn)。適用情況:A.當(dāng)多個(gè)類型不能抽象出合理的父類時(shí),但是又要對(duì)某些行為進(jìn)行多態(tài),將公共的方法抽象到一個(gè)接口中,讓不同的子類調(diào)用。
3.多態(tài)分類:
(1)動(dòng)態(tài)多態(tài)常指抽象類的繼承;
(2)靜態(tài)多態(tài)可用泛化編程實(shí)現(xiàn),使用模板可行;
(3)函數(shù)多態(tài)即重載;
(4)宏多態(tài)原因在于它只是進(jìn)行對(duì)應(yīng)字節(jié)調(diào)換,不會(huì)辨別變量類型。
總結(jié)
以上是生活随笔為你收集整理的多态定义、多态实现、多态分类。的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 构造函数不可以是虚函数;析构函数可以是虚
- 下一篇: new/delete与malloc/fr