玩轉C#之【物件導向】

2022/09/11閱讀時間約 2 分鐘

介紹

在過去的歷史裡開發程式都是以呼叫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/
鐵人賽文章:
為什麼會看到廣告
8會員
39內容數
我是這個部落格的作者,喜歡分享有關投資 💰、軟體開發 💻、占卜 🔮 和虛擬貨幣 🚀 的知識和經驗。
留言0
查看全部
發表第一個留言支持創作者!