【C# Skills】06 - Polymorphism 多形

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 抽象

在一個類別當中宣告一個方法但是沒有實作,待子類別繼承時,根據自己應用場景實作這個方法的內容。