我一直在用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();
}
}
}
即使我省略虚拟或覆盖关键字(或两者)我仍然得到同样的输出。 我在做什么
你实际上并没有做多态。 –