当前位置: 代码迷 >> ASP.NET >> abstract与virtual申明的函数有什么区别?该怎么解决
  详细解决方案

abstract与virtual申明的函数有什么区别?该怎么解决

热度:5630   发布时间:2013-02-26 00:00:00.0
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();
}
}
  相关解决方案