抽象方法:
使用abstract关键字
抽象方法是必须被派生类覆写的方法。
抽象方法是可以看成是没有实现体的虚方法
如果类中包含抽象方法,那么类就必须定义为抽象类,不论是否还包含其它一般方法
虚方法 :
使用virtual关键字
调用虚方法,运行时将确定调用对象是什么类的实例,并调用适当的覆写的方法。
虚方法可以有实现体
简单点说,抽象方法是需要子类去实现的.虚方法,是已经实现了,子类可以去覆盖,也可以不覆盖取决于需求.
举个例子你就明白了:
namespace ConsoleApplication1
{
//----------------定义一个抽象类--------------
public abstract class AUser
{
public abstract UserInfo getUser(); //抽象方法
public virtual void Save(UserInfo info) //虚方法
{
//实现保存的功能
}
}
//------------定义一个类User1,继承类AUser,实现抽象方法-----------
public class User1:AUser
{
public override UserInfo getUser()
{
//一定要实现的,抽象类只给了抽象方法
}
//虚方法可以不实现
}
//----------------------定义一个类User2,继承AUser,实现抽象方法,覆盖须方法------------------------
public class User2:AUser
{
public override UserInfo getUser()
{
//一定要实现的,抽象类只给了抽象方法
}
public override void Save(UserInfo info)
{
//覆盖抽象类中的Save方法
}
}
}
|