C# 多型與多載
起初聽到多型時,心裡有一百個問號想說到底什麼叫做 "多型"
但其實簡單來說他就是一個虛擬的方法,並且在設定真實方法中去覆蓋他
其實 多型 與 繼承 息息相關,繼承了父類別的方法並且覆寫成新的方法
例如 : 我們在設計遊戲時,每個角色都有技能、血量(HP)、MP等,我們可以先寫個虛擬的技能、HP、MP 再根據每個角色去覆寫這些方法
class polymorphism
{
static void Main(string[] args)
{
Warrior w = new Warrior();
w.activeSkill();
w.blood();
}
}
public class BaseSkill
{
public virtual void activeSkill()
{
Console.WriteLine("沒有技能");
}
public virtual void blood()
{
Console.WriteLine("HP : 50");
}
}
public class Warrior : BaseSkill
{
public override void activeSkill()
{
Console.WriteLine("殺殺殺技能");
}
public override void blood()
{
Console.WriteLine("HP : 150");
}
}
從上方的程式碼中,BaseSkill便是指大家都擁有的一些功能,例如 技能 跟 HP,這些虛擬的方法請記得加上 virtual 等同於java的 abstract
warrior 繼承了這個方法後便可以去覆寫原先的功能,如同輸出所顯示的
在其他網站中,有看到有人說多載與多型很容易搞混,在這就順便寫一下多載
其實多載是指相同的方法但是有可能所帶入的參數不同,有的代入 int 或是string
class Class1
{
public void main(string[] args)
{
sample();
sample(10);
}
void sample()
{
}
void sample(int i)
{
}
void sample(string s)
{
}
}
參考資料:
1. Weight遊戲作家
2.攻城獅跳火圈