C#学习系列-抽象方法与虚拟方法的区别_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > C#学习系列-抽象方法与虚拟方法的区别

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

 2014/8/12 18:09:04  释迦苦僧  程序员俱乐部  我要评论(0)
  • 摘要:参考:http://www.microsoftvirtualacademy.com/Content/ViewContent.aspx?et=9851&m=9838&ct=31054如有错误,欢迎指正。主要区别:对于抽象方法,子类必须实现它。对于虚拟方法,子类可以重写也可以不重写。两者约束不同下面贴代码/*声明一个抽象类*1.抽象类中可以包含变量*2.抽象方法中无法声明方法体*/abstractclassAbsClass{stringname
  • 标签: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); }

 

发表评论
用户名: 匿名