2022-09-11|閱讀時間 ‧ 約 3 分鐘

玩轉C#之【物件導向】

介紹

在過去的歷史裡開發程式都是以呼叫Function的方式來做程式開發,後來才有了物件導向設計的概念,而物件導向程式設計的概念就是,使用【物件】的方式來設計程式。
Q: 什麼是【物件】? A:【物件】會包含以下這四個特性:
  1. 抽象(Abstraction)
  2. 封裝(Encapsulation)
  3. 繼承(Inheritance)
  4. 多型(Polymorphism)

抽象(Abstraction)
  • 將真實世界的需求轉換成為OOP中的類別
  • 類別可以包含狀態(屬性)與行為(方法)。

封裝(Encapsulation)
  • 隱藏/保護內部實作的細節,並可以對屬性或方法設定存取層級(Public,Private,Protected)

繼承(Inheritance)
  • 可以讓您建立新類別以重複使用、擴充和修改其他類別中定義的行為。

多型(Polymorphism)
  • 在相同介面下,可以用不同的型別來實現。
  • 多型有分成好幾種不同類型。
在C#中所有類都是"多型"
  • 在設計時期(Design Time)基底類別可以定義和實作【虛擬】屬性或方法(virtual) 衍生類別可以【覆寫】這些虛擬的屬性或方法(override)
  • 在執行時期(Runtime)當呼叫基底類別的虛擬方法時,會改呼叫子類別覆蓋的方法
  • 在C#中,所有類型都是多型類型因為所有類型(包誇使用者定義的類型)都是繼承自Object
  • 如果再C#中設計防止衍生類別覆蓋虛擬成員public sealed override void Dowork(){}
  • 多載(Overloading)比較有點爭議(有些人認為這不算多型)

程式開發的流程

第一步: 從需求或規格中進行"抽象化"的過程,透過"抽象化"過程定義出類別 第二步: 對實作的細節進行"封裝"(隱藏、保護) 第三步: 透過"繼承"來重複利用、擴充和修改基底類別的定義

參考資料

本篇已同步發表至個人部落格 https://moushih.com/2022ithome10/
鐵人賽文章:
分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.