代码改变世界

虚函数与抽象函数的区别与用法

2016-04-22 17:00  哲思风缇  阅读(1425)  评论(0)    收藏  举报

虚函数与抽象函数的主要区别是抽象函数必须在抽象类中申明且没有函数体,其派生类必须重写此方法。

1、区别

                                       虚函数(virtual)                                      抽象函数(abstract )

有无实现                             有                                                           无

在派生类中是否必须重写         可重写可不重写                                          必须重写

声明位置                            任何非密封类中                                           必须在抽象类中

2、用法

 

/// <summary>
/// 车
/// </summary>
public abstract class Car
{
public string Name { get; set; }
public abstract void Run(int speed );
public virtual void Call(string content)
{
Console.WriteLine("didi");
}
}

 

/// <summary>
/// 火车
/// </summary>
public class Train:Car
{
public override void Run(int speed)
{
Console.WriteLine("I am Train,the seed is " + speed);
}
}

 

/// <summary>
/// 摩托车
/// </summary>
public class Motorcycle:Car
{
public override void Run(int speed)
{
Console.WriteLine("I am Motorcycle,the seed is "+speed);
}
public override void Call(string content)
{
Console.WriteLine("Motorcycle:" + content);
}
}

 

class Program
{
static void Main(string[] args)
{
Train train = new Train();
train.Name = "train";
train.Run(983);
train.Call("honghong");
Motorcycle motorcycle = new Motorcycle();
motorcycle.Name = "motorcycle";
motorcycle.Run(40);
motorcycle.Call("dudu");
Console.ReadLine();
}
}