97超碰碰碰_91热播_91国产免费视频_91视频合集_国产精品白丝jk白祙_国产精品久免费的黄网站

您現在所在的位置:首頁 >學習資源 > Unity游戲/VR/AR入門教材 > VR開發入門教程24:面向對象之多態

VR開發入門教程24:面向對象之多態

來源:奇酷教育 發表于:

多態多態(polymorphism)即一個名字具有多種語義。在面向對象中指一個方法可以有多種實現版本。類的多態表現為方法的多態,方法的多態主要有

多態
多態(polymorphism)即一個名字具有多種語義。在面向對象中指一個方法可以有多種實現版本。類的多態表現為方法的多態,方法的多態主要有重載(overload)和覆蓋(override)。
重載是同一個類中,有多個方法同名,但是參數列表不同
參數列表不同:
1.參數的個數不相同
2.參數的類型不同
3.參數的次序不同
 
注意:返回值類型不同無法確定重載
 
 
覆蓋(重寫)是子類中定義了父類同名方法,且參數列表和返回值相同
 
1.父子類內部
2.父類的方法virtual修飾一下 形成虛方法或者為抽象方法:abstract修飾
3.子類中的方法務必和父類的方法同名 override關鍵字修飾一下
4.其他的通通一樣(訪問修飾符 修飾符 返回值類型 參數列表)

編譯時多態
同名方法構成重載的條件
參數列表不同(包括參數的個數、類型、不同類型參數的順序),方法的返回值不能構成重載的條件
靜態聯編(靜態多態性)
它是C#的編譯時特性。即在編譯用戶的程序代碼時就將對某一方法的調用與對應的具體方法體相互聯系起來,生成最終的程序代碼
同名的方法由于參數列表不同,在編譯時就可以根據調用方法的形式確定到底執行哪個方法的代碼,因此這種方法的同名是允許的
 
運行時多態
同名方法構成覆蓋的條件:
1、方法分別在父、子類中定義
2、父類中的方法用virtual修飾
3、子類中的方法用override修飾
4、同名 同參 同返回值類型
運行時多態性是C#的運行時的特性。即在編譯用戶的程序代碼時不將對某一方法的調用與對應的具體方法體相互聯系起來,而是在執行過程中依據對象的實際類型相應地生成對該對象所在類中的方法最終調用的程序代碼。
 
由于調用方法的引用可能指向父類或子類的對象(見上轉型對象),因此可以根據“是誰的對象就調用誰的方法”的原則確定調用同名方法中的哪一個,因此在父、子類中定義同名、甚至參數列表相同的方法是允許的。當然,確定調用方法的引用指向父類還是子類的對象在編譯時無法完成,只能在運行時確定。
重載和覆蓋的區別
從方法聲明角度:重載的兩個函數參數列表不同;覆蓋的兩個方法參數列表和返回值相同
從所處位置角度:重載的兩個方法在同一類中;覆蓋的兩個方法在有繼承關系的兩個類中
從方法調用角度:重載的方法被同一對象使用不同的參數調用;覆蓋的方法被不同對象使用相同參數調用。從多態時機角度:重載的方法在編譯時多態;覆蓋的方法在運行時多態。
 
主站蜘蛛池模板: 成人国产永久福利看片 | 黄色片a| 日本一级特黄完整大片 | 在线 中文字幕 日韩 欧美 | 美女一级毛片免费看看 | 亚洲男人的天堂一区二区 | 欧美日韩亚洲在线观看 | 伊人婷婷色| 极品熟妇大蝴蝶20p 极品丝袜高跟91白沙发在线 | 在线观看欧美一区二区三区 | 亚洲一区综合在线播放 | www.一区二区三区.com | 老熟妇高潮喷了╳╳╳ | 国产色综合久久无码有码 | 国内精品不卡一区二区三区 | 久久久久久电影 | 亚洲精品国产精品一区二区 | 人人妻人人澡人人爽人人精品浪潮 | 日韩欧美亚洲在线 | 亚洲欧美日韩精品高清 | 欧美激情视频一区二区三区 | 午夜国产小视频 | 欧美日韩亚洲另类人人澡 | 亚洲av午夜国产精品无码中文字 | 国产精品自产拍在线观看 | 亚洲国产精品无码成人片久久 | 亚洲中文字幕无码天然素人在线 | 国产日韩欧美亚洲综合 | 嫩草影院久久国产精品 | 欧美精彩狠狠色丁香婷婷 | 欧美成人精品手机在线观看 | 在线观看精品国产入口 | 国产网红福利视频网站 | 日本怡春院一区二区三区 | 性xxxx欧美老妇胖老太269 | 婷婷激情综合色五月久久竹菊影视 | 欧美很很干 | 美女超爽久久久久网站 | 亚洲av无码专区亚洲av | 男女刺激大片免费观看网站 | 久久频精品99香蕉国产 |