OOP 三大特性
OOP 三大特性
1. 繼承 Inheritance
- 繼承者會擁有被繼承者非靜態(non-static)的型別特徵。
- C# 的繼承
- 衹能繼承一個類別(Class)
- 能夠實作多個界面(Interface)
2. 封裝 Encapsulation
- 隱藏不必要為外界所知的資訊 using access modifier(private,protected,internal)
- 隱藏行爲的變化,透過公開的property/method與外界互動
- eg 駕駛者衹知道要讓汽車動的話就需要踩油門,踩了油門發生了什麽駕駛者其實不需要知道
-
public class Car { public void PushPedal() { //implement car move logic here } }
- 利用抽象隱藏實作
- 不公開欄位 Field的原因是欄位並不受控制
3. 多型 Polymorphism
- 廣義多型(universal polymorphism)
- 繼承式多型(inclusion)
- 人們常説的多型多數指的就是繼承式多型別
- 參數式多型(parametric)
- 泛型 List <T>
- 繼承式多型(inclusion)
- 特設多型(ad hoc polymorphism)
- 多載(overloading)
-
public class Calculator { public int Add(int first, int second) { return first + second; } public double Add(double first, double second) { return first + second; } }
相同方法名字,但傳入參數不同
-
- 強制同型(coercions)
-
int i = 2; double j = 2.9; double k = i+j;
-
- 多載(overloading)