中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C#forUnity快速入門(連載7)-C#多態性

發布時間:2020-07-06 22:21:10 來源:網絡 閱讀:1593 作者:Liu_guozhu 欄目:開發技術

 C# for Unity 編程語言快速入門教程(連載7)---C#OOP編程之多態性 


    C#的多態性本質上就是“一個方法實現多種功能”,為大中型項目開發提供便利性,起到大幅提高效率的目的。在C#的多態性上主要分為:“方法重載”與“方法覆蓋”兩種。


  “方法重載”說的是一個方法,通過不同的“簽名”(即:不同的方法參數列表),實現不同的功能,從而避免了大量相似的功能需要不同的方法名。


  “方法重寫"是指在具有繼承關系的父子類中,子類通過本功能實現不同功能的一種技術手段,目的是實現編程的靈活性。例如C#中Object 這個"根類"(即:通俗說就是“老祖宗”類,再也沒有上級類了)有一個ToString() 的方法,我們很多的項目類中,為了項目的實際需要常常“重寫”這個方法。


現就這一部分知識點,總結如下:


1: 方法重載              [靜態多態性]   
   1.1> 方法(函數)簽名
           參數的數量
           參數的類型
           參數的順序
   1.2>構造函數重載

2: 繼承關系下的方法重載(即重寫)  [動態多態性]
   2.1> 使用 virtual 與override 關鍵字.
         A) 基類(即:父類)不為virtual 的方法,派生類不能使用override 進行重寫。
         B) 假如派生類(即:子類)不用override 關鍵字來聲明方法,就不會覆蓋基類方法, 它只會成為和基類的方法完全不相關的另一個方法的實現。

   2.2>使用 sealed/partial 關鍵字.
          密封類表示不能繼承該類。
          密封方法表示不能重寫該方法。可以覆蓋父類的密封方法,與父類中的方法是否為密封的沒有關系。
   2.3> 關于方法重寫的部分規則總結
         A): 不能重寫父類中的sealed方法.
         B): 不能重寫父類中的static 方法.
         C): 子類必須重寫父類中的抽象方法. [備注:“抽象方法”,筆者在下一篇進行詳細講解]


本部分的筆者提供以下編程題目,供C#初學者進行編程練習。


1: 利用多態性實現多功能計算器:
   1) 定義方法名為computeMethod 的方法,實現加法器。
   2) 再定義方法名為computeMethod 的方法,實現具備加減乘除綜合計算功能。
   3) 在main 方法中調用以上方法,且測試。


2: 利用多態性實現如下功能。
   1) 定義一個Father 類,利用構造方法的重載概念定義三個構造方法。
   2) 定義Child 類繼承Father類,在Child的構造方法中分別調用父類不同的構造方法。


3: 設計一個基類,在其中創建方法MConvert,這個方法接受一個代表公里數的參數,將其轉換為對等的英里數之后,然后創建一個繼承此類的子類,增加可將輸入的公斤數轉換為磅的新方法 KConvert, 最后產生子類的實例對象, 測試這兩個功能。
    提示信息:
    1千米(公里) = 0.62英里
    1千克(公斤) = 2.2磅


4: 調整上一題的內容,將其中的MConvert方法聲明為virtual, 然后在子類中進行覆寫,以其所接受的參數為正方形邊長,轉換為英里后計算其面積。


5:創建一個類,重寫ToString() 方法, 當其被引用的時候,能夠輸出此類對象的說明文字,如下:“測試用的myObject 類對象”

    

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

车险| 龙川县| 双峰县| 高雄县| 土默特右旗| 乐亭县| 涿鹿县| 喀什市| 凤翔县| 肥城市| 丰城市| 涞源县| 永川市| 崇礼县| 夏津县| 屯门区| 福建省| 西安市| 芦溪县| 炉霍县| 阿勒泰市| 泗洪县| 普安县| 大同县| 江川县| 宽城| 华池县| 商洛市| 阿巴嘎旗| 沭阳县| 朝阳县| 昌黎县| 西乌| 石阡县| 太白县| 海口市| 鄱阳县| 长岭县| 虹口区| 黄大仙区| 新郑市|