###### tags:`Notes` # 物件導向(OBJECT ORIENT) |英文|中文|簡述|參考文章| |-|-|-|-| |Class|類別|**建築藍圖**<br>用來定義方法、類別、屬性。<br>是靜態的、不可改變的|[類別與物件的相互關係](https://blog.miniasp.com/post/2009/10/01/OOP-Basis-What-is-class-and-object-ANSWER)| |Object|物件|**建築物**<br>根據 class 藍圖所發展的實體,占用著實際的記憶體空間。 |Abstract|抽象類別|**定義於 Class 之上**<br>整併不同類別的共用項目,如交通工具可以共同繼承Abstract Car 這個類別。<br>==不能直接 Instance 化==|[C#雜記 — 介面(interface)、抽象( abstract)、虛擬(virtual)之我見](https://medium.com/@ad57475747/c-%E9%9B%9C%E8%A8%98-%E4%BB%8B%E9%9D%A2-interface-%E6%8A%BD%E8%B1%A1-abstract-%E8%99%9B%E6%93%AC-virtual-%E4%B9%8B%E6%88%91%E8%A6%8B-dc3c5878bb80) |Interface|介面|**定義於 Class 之上**<br>提供==類別==與==抽象類別==可以繼承的共用屬性<br>是Abstract的一種變形。 |Virtual|虛擬方法|**定義於 Class 中**<br>被另一個 Class 繼承之後,可以直接用或 override。 |Inheritance|繼承|取用別人的藍圖,再覆寫/加入自己的屬性、方法(不能刪除)| |Override|覆寫|將繼承來的 Function 改成自己的形狀|| |Encapsulation|封裝|將Class內中的屬性、方法設為 Private 使得 被new之後,只能操作 public 的Funtion 或屬性,Private 的資料或流程不可被修改| |Polymorphism|多型|==動態多型(dynamic polymorphism)==<br>==靜態多型(static polymorphism)==<br>**非參數化多型(Ad-hoc polymorphism)**<br>- 函式多載(Function Overloading)<br>- 運算子多載(Operator Overloading)<br>- 帶變數的宏多型(macro polymorphism)<br>**參數化多型(Parametric polymorphism)**<br>- 即泛型|[深入淺析c#靜態多型性與動態多型性](https://www.itread01.com/article/1536285373.html)| |Overload|多載|**Function Overloading**:<br>同名,不同參數的Function<br>**Operator Overloading**:<br>用 + 來取代add()、用 * 來取代mul() |Generic|泛型|用<T>讓Function能夠接受任意型別的參數| |Delegate|委派|==允許將方法當作參數進行傳遞。==<br>**FUNC**<>就是有一個回傳值的委派<br>**ACTION**<>是沒有回傳值的委派。|[C#雜記 — 委派(Delegate)、FUNC<>、ACTION<>](https://medium.com/@ad57475747/c-%E9%9B%9C%E8%A8%98-%E5%A7%94%E6%B4%BE-delegate-func-action-4b3191c7a131)
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up