virtual ,abstract,override 用法

 

abstract:

抽像一个方法或一个类,抽像一个类时如下:

public abstract class MigrateBase
{

protected abstract List<string> NeedReplaceColumn { get; }

}

MigrateBase 就可以做为其它类的基类,NeedReplaceColumn 属性在其的子类中则必须重写,就是说的override,而且abstract 在声名方法或属性时,实现不要写;

 

virtual:

虚拟一个方法,如下

public abstract class MigrateBase
{

        protected virtual List<string> NeedReplaceColumn
        {

            get
            {

                List<string> numlist = new List<string>(){

                {"one"},

                {"two"}

                };

                return numlist;
            }
        }

}

virtual 在子类继承MigrateBase时可以override,也可以不override,不override的话,NeedReplaceColumn的值就是List<string>(){{"one"},{"two"}};

如果override 后,如下:

   public  class MigratePatientsDocuments : MigrateBase
    {

       protected override List<string> NeedReplaceColumn
        {

            get
            {

                List<string> numlist = new List<string>(){

                {"three"},

                {"four"}

                };

                return numlist;
            }
        }

 

      那么在运行MigratePatientsDocuments类时,NeedReplaceColumn的值就是:

List<string>(){

                {"three"},

                {"four"}

                };

override:

  重载方法,父类有abstract的方法里,子类一定要对该方法override,而virtual的方法,可以不用.

posted @   spring yang  阅读(653)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
点击右上角即可分享
微信分享提示