abstract与virtual申明的函数有什么区别?
如题!
------解决方案--------------------abstract 是抽象,virtual 是虚方法,前都不能写实现代码,只是一个声明且子类必须实现他,后都可以写实现代码且子类可以不实现
------解决方案--------------------abstract表示这个函数必须被重写。否则子类还是抽象类,不能声明实例。
virtual表示函数允许被重载。
------解决方案--------------------abstract是必需要重写
virtual是可以被重写.
------解决方案--------------------比如如下的代码:
abstract class a
{
public abstract void a1();
public virtual void a2()
{
}
}
class b : a
{
/// <summary>
/// 一定要重写,因为基类中是abstract
/// </summary>
public override void a1()
{
}
/// <summary>
/// 可以不重写,因为基类中是virtual
/// </summary>
public override void a2()
{
base.a2();
}
}