zoukankan      html  css  js  c++  java
  • 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的方法,可以不用.

  • 相关阅读:
    整数数组的组合问题
    C++ 虚函数与纯虚函数 浅析
    NetBeans 8.0 连接远程服务器
    R语言画图教程之盒形图
    R语言建立回归分析,并利用VIF查看共线性问题的例子
    R语言建立回归分析,并利用VIF查看共线性问题的例子
    Python技巧—list与字符串互相转换
    Python技巧—list与字符串互相转换
    sas正则式之prxparen
    sas正则式之prxparen
  • 原文地址:https://www.cnblogs.com/springyangwc/p/1948417.html
Copyright © 2011-2022 走看看