Polymorphism 多形,分為三種:
- Function overloading 方法重載
- Operator overloading 運算子重載
- Abstract 抽象
Function overloading 方法重載
方法名稱相同但是參數不同,如下。一樣都叫 "Add",但是參數可以不一樣,不管你輸入的是int 或是字串都可以處理
public int Add(int number1, int number2)
{
return number1 + number2;
}
public int Add(string number1String, string number2String)
{
bool convert1Succeed = int.TryParse(number1String, out int number1);
bool convert2Succeed = int.TryParse(number2String, out int number2);
if(convert1Succeed && convert2Succeed)
return number1 + number2;
else
throw new Exception("數字格式錯誤");
}
Operator overloading 運算子重載
可以在一個物件中定義當這個物件遇到+ - * / 等等運算子,背後的實際行為
https://learn.microsoft.com/zh-tw/dotnet/csharp/language-reference/operators/operator-overloading
Abstract 抽象
在一個類別當中宣告一個方法但是沒有實作,待子類別繼承時,根據自己應用場景實作這個方法的內容。