日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

多态定义、多态实现、多态分类。

發(fā)布時(shí)間:2025/6/15 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 多态定义、多态实现、多态分类。 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

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ì)子類來說不適用,子類通過重寫該方法,覆蓋了父類中的方法。

public class Person{public virtual void SayHello(){Console.WriteLine("Say hello!");}}public??class Chinese : Person{public override void SayHello(){Console.WriteLine("中國人問好!");}}


抽象方法:子類重寫父類中的方法,父類中不對(duì)方法進(jìn)行實(shí)現(xiàn),在子類中進(jìn)行實(shí)現(xiàn),父類是抽象類。適用情況:針對(duì)同一種類型抽象出來的父類,對(duì)某些行為和屬性大家都是公有的,但是這些屬性和行為實(shí)現(xiàn)方式并不一致。

abstract??class Person{public abstract void SayHello();}class Chinese : Person{public override void SayHello(){Console.WriteLine("中國人問好!");}}


接口:實(shí)現(xiàn)接口的類,將接口中的方法實(shí)現(xiàn)。適用情況:A.當(dāng)多個(gè)類型不能抽象出合理的父類時(shí),但是又要對(duì)某些行為進(jìn)行多態(tài),將公共的方法抽象到一個(gè)接口中,讓不同的子類調(diào)用。

public interface IFlyable//定義一個(gè)接口,實(shí)用interface 修飾,接口名以I開頭,接口中只能包括方法,且方法沒有訪問修飾符,方法不實(shí)現(xiàn)。{void Fly();void Jump();}class Student:Person,IFlyable//當(dāng)一個(gè)類繼承了父類,并且實(shí)現(xiàn)了多個(gè)接口的時(shí)候,被繼承的類必須寫在繼承列表的第一個(gè)位置{public void Fly(){Console.WriteLine("I can fly");}}

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)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。