您的位置:首页 > 编程语言 > C#

C#学习系列-抽象方法与虚拟方法的区别

2014-09-06 11:50 381 查看
原文:C#学习系列-抽象方法与虚拟方法的区别参考:http://www.microsoftvirtualacademy.com/Content/ViewContent.aspx?et=9851&m=9838&ct=31054

如有错误,欢迎指正。

主要区别:

对于抽象方法,子类必须实现它。

对于虚拟方法,子类可以重写也可以不重写。

两者约束不同

下面贴代码

/* 声明一个抽象类
* 1.抽象类中可以包含变量
* 2.抽象方法中无法声明方法体
*/
abstract class AbsClass
{
string name;
public abstract void DisplayValue(string value);
}

/*继承抽象类的子类必须实现抽象方法*/
class AbsClassInherited : AbsClass
{
/*使用override重写实现*/
public override void DisplayValue(string value)
{
Console.WriteLine(value.ToUpper());
}
}
/* 声明虚拟函数
*/
class VirtClass
{
/*声明一个虚拟函数
虚拟函数必须实现方法体*/
public virtual void DisplayValue(string value)
{
Console.WriteLine(value);
}
}
/*虚拟方法可以实现也可以不实现*/
class VirtClassInherited : VirtClass
{
/*使用override重写实现*/
public override void DisplayValue(string value)
{
Console.WriteLine(value.ToUpper());
}
}

/* 声明一个接口
* 1.接口中的方法必须是公用的
* 2.接口中不允许有变量
* 3.接口中的方法不允许有方法体
*/
interface IAbs
{
void DisplayValue(string value);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: