读书人

abstract与virtual申明的函数有什么区

发布时间: 2011-12-30 23:30:45 作者: rapoo

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();
}
}

读书人网 >asp.net

热点推荐