首页 > 学院 > 开发设计 > 正文

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

2019-11-17 02:58:51
字体:
来源:转载
供稿:网友

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


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表