- 1、本文档共69页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
654 保留父类别的多载方法
6.3.4 解構式 當物件結束時會執行物件的解構式 Destructor ,通常我們會在解構式中處理如檔案關閉、記憶體回收的動作。由於現在 .NET Framework 會由 CLR 自動執行記憶體回收的動作,且加上解構式會影響執行效能,所以除非必要,建議不要使用解構式。 解構式的名稱和類別名稱相同,但前面必須加上「~」符號,例如為 Car 類別建立一個自訂的解構式,顯示物件已釋放的訊息: 6.4 靜態成員 在 6.1.2 節定義類別時,可用修飾詞 public、private 或 protected 定義不同存取範圍的類別成員,此外,還有一個 static 修飾詞用以宣告成員為靜態成員。 靜態成員是以「靜態類別. 靜態成員」來執行 如Student.Name ,且即使未用new 建立物件亦可直接使用類別中的靜態成員。靜態成員在記憶中只有儲存一份。 6.5 繼承 繼承 Inherit 是物件導向程式設計中非常重要的機制。繼承是從既有的類別建立新的類別,繼承後的類別稱為為子類別 Child Class 或衍生類別 Derived Class ,而被繼承的類別稱為為父類別 Parent Class 或基底類別 Base Class 。 6.5.1 子類別的建立 要建立子類別非常簡單,只要在子類別的名稱後面加入冒號並指定父類別即可,例如要建立子類別 B 繼承父類別 A 的語法為: 子類別會繼承父類別中宣告為 public 及 protected 的成員 包括欄位、屬性、方法和事件 , private 的成員雖然可以繼承,但不能存取。 6.5.2 子類別的應用 繼承最大的好處是可以由已存在的類別來擴充自己所需的功能,原來已設計好的部分可以直接使用,設計者只需專心於擴充的部分即可。例如:若已存在一個計算長方形面積的類別,現在需要計算三角形面積,由於兩者的計算資料都是寬與高,可以直接繼承此長方形面積類別,新增一個計算三角形面積的公式即可。完成的新類別,不但可以計算三角形面積,也可以計算長方形面積,真是一舉兩得。 6.5.3 子類別多載 如果要在子類別新增與父類別相同名稱但參數資料型別不同或參數個數不同的方法多載,可直接在子類別中建立方法多載。當呼叫子類別的方法時,Visual C# 會根據所傳入的參數執行正確的方法。 6.5.4 保留父類別的多載方法 如果子類別的多載方法會使用到原有父類別多載方法功能,想在子類別中使用父類別的多載方法,並在子類別中擴充新的功能,而不必重新撰寫父類別原來就具有的功能,如此可以快速建立功能強大的多載方法。 要保留父類別的多載方法,只要在子類別的多載方法中使用 base 代替父類別名稱,即可在子類別中使用父類別的多載方法。 6.6 覆寫及遮蔽 多載是以參數來區別多個方法的不同,若是要在子類別中建立參數和原來父類別的參數完全相同的方法(即相同參數的多載),就必須在子類別中以覆寫或遮蔽方式建立方法。 6.6.1 覆寫 覆寫 Override 是在子類別中以相同名稱成員取代原來父類別中的成員 包括屬性及方法 ,如果覆寫的是「方法」,則子類別參數必須和原來父類別的參數完全相同。 要完成覆寫必須在父類別的屬性及方法加入「virtual」關鍵字表示此為虛擬屬性及方法允許被覆寫,同時也要在子類別加上「override」進行覆寫。如果子類別中沒有加入 override 關鍵字,或子類別中方法的參數和父類別中的參數不同,將會產生錯誤。例如要以子類別 B 的 Method1 方法覆寫父類別 A 的 Method1 方法: 6.6.2 遮蔽 遮蔽 Shadow 則沒有父類別必須先做 virtual 宣告的限制,只要在子類別的方法上加入 new 關鍵字即可取代父類別中相同參數的方法。遮蔽相當於「強制覆寫」,遮蔽之後原有父類別的方法仍然可以在父類別使用。 6.7 綜合練習 物件的精神主要是封裝、繼承和多載,最後舉一個精簡的例子,將本章所有物件的關念及用法全部融合在內。 類別與物件 06 6.1 類別與物件 目前的程式設計主流是物件導向 OOP ,Visual C# 已提供完整的物件導向功能。在物件導向設計裡,物件可以被封裝 保護 和繼承 重複使用 。因為物件的封裝會使物件受到保護,要存取物件必須透過屬性 Property 、方法 Method 和事件 Event 。物件的封裝如同日常生活中的 ATM 提款機,其提款必須透過正確的方式才能提款 輸入帳號和密碼 ,而不可用不當破壞方式提款。 6.1.1 類別與物件的關係 物件 Object 可說是一件東西,物件具有屬性 Property 、方法 Method 以及觸發的事件 Event 。例如:David
您可能关注的文档
最近下载
- 联学共建主题党日活动方案例文五篇.doc VIP
- 一种二维锌钴双金属ZIF催化剂及其制备方法和应用.pdf VIP
- 小学英语分级群文阅读教学模式探索-来源:教育实践与研究(小学课程版)(第2022007期)-河北省教育科学研究所.pdf VIP
- 方格纸A4(聪明人用的方格笔记本)灰框-打印可用.doc
- 高中物理开学第一课.ppt
- 2020年一年级下册道德与法治教学设计(表格式)-7可爱的动物 第二课时 人教部编版.doc
- 怪物猎人P3地图和素材.pdf
- Panasonic松下电梯门机AAD03040D-OL调试资料.pdf
- 出海东南亚电商平台Shopee介绍课件.pptx
- 推动科技创新,培育新质生产力.pptx VIP
文档评论(0)