我有一個名爲Employee
的類。現在我試着定義它的Equals
方法,但我想只接受Employee
作爲參數。爲什麼我必須重寫虛擬方法而不是使用多態?
所以我寫這篇文章的代碼:
class MainClass
{
public static void Main (string[] args)
{
Employee e = new Employee();
Employee e2 = new Employee();
Console.WriteLine(Equals(e, e2));
}
public static Employee CreateEmployee()
{
return new Employee();
}
}
class Employee
{
public int ID;
public bool Equals (Employee e)
{
Console.WriteLine("Compare!");
return ID == e.ID;
}
}
但它不工作!控制檯輸出:
false
不出我所料:
Compare!
true
它看起來像我有寫public override bool Equals (Object)
,但是爲什麼呢? Can not C#根據參數類型選擇要調用的方法?