虚方法的存在主要是为了解决基类中有些方法不想让子类去继承,而是让子类去重新复写基类的这些方法的问题。
以下是具体的例子便于理解:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
/*
* @改代码段演示的是虚方法的定义,虚方法主要功能是基类的一些方法不适合子类,并需要子类自己来复写的
* 的一种方法,这种方法需要子类复写,子类的关键字是override,而虚方法的关键字是virtual
*/
namespace Extends
{
class Program
{
static void Main(string[] args)
{
Car car = new Car();
car.Name = "BMW";
car.ID = 111222;
car.run();
SuperCar super = new SuperCar();
super.Name = "BMW";
super.run();
while (true) ;
}
}
class Car
{
int id;
string name;
public int ID
{
set
{
id = value;
}
get
{
return id;
}
}
public string Name
{
set
{
name = value;
}
get
{
return name;
}
}
public virtual void run()
{
System.Console.WriteLine("美女爱有{0}车的男人", name);
}
}
class SuperCar : Car
{
public override void run()
{
System.Console.WriteLine("不是所有的男人都能买的起{0}车的",Name);
}
}
}