我一直在用C++編程一段時間,現在我開始使用C#,但是我無法得到關於virtual
和override
關鍵字的想法。既然指針和所有與它相關的東西大部分都是從C++中刪除的,我們並不真的需要它們嗎?或者我錯過了C#編程的一些主要觀點。C#繼承 - 爲什麼使用覆蓋和虛擬?
例子:
namespace ConsoleApplication1
{
public class Employee
{
public virtual void GetPayCheck()
{
Console.WriteLine("employee gets his pay check ");
}
public void Work()
{
Console.WriteLine("employee works ");
}
}
public class Manager : Employee
{
public override void GetPayCheck()
{
Console.WriteLine("MANAGER gets his pay check ");
}
}
class Program
{
static void Main(string[] args)
{
Employee emp = new Employee();
Manager exec = new Manager();
emp.Work();
exec.Work();
emp.GetPayCheck();
exec.GetPayCheck();
}
}
}
即使我省略虛擬或覆蓋關鍵字(或兩者)我仍然得到同樣的輸出。 我在做什麼
你實際上並沒有做多態。 –