• c# 覆盖\重写\重载


    一个抽象方法,接口,标记为virtual的方法,你在派生类中去实现,或者改写他的功能,叫重写

    在父类中定义了一个方法如: public string GetName(){ return "Name"}方法,在派生类中再次定义了一个同样的方法public string GetName(){ return "Value"}  则派生类覆盖了父类的方法

    覆盖重写的区别:

    重写:
        public class C1
        {
            public virtual string GetName()
            {
                return "Name";
            }
        }

        public class C2:C1
        {
            public override string GetName()
            {
                return "Value";
            }
        }

    C1 c1 = new C2();

    label1.Text = c1.GetName();  //子类已经重写了父类,输出为子类的值Value


       public class C1
        {
            public  string GetName()
            {
                return "Name";
            }
        }

        public class C2:C1
        {
            public new  string GetName()
            {
                return "Value";
            }
        }

    C1 c1 = new C2();
    label1.Text = c1.GetName();  //子类已经仅覆盖了父类,父类的GetName方法仍在,这样调用的是父类的GetName方法,输出为Name


    重载是指在一个类中同名,但是参数列表不相同的方法组

    如:
    public class Test
    {
       public string GetName(string key)
       {
            return key;
       }

       public string GetName(int key)
       {
           return key.ToString();
       }
    }

    这类的两个方法成为重载方法

  • 相关阅读:
    算法分析设计实践——相容问题
    算法分析设计实践——最长公共子序列
    算法分析设计实践——矩阵链乘法
    Rotate Columns (easy version) CodeForces
    Save the Nature CodeForces
    Similar Arrays CodeForces
    算法分析设计实践——投资问题
    皇后问题(BFS解法)
    Git的基本使用
    在阿里云服务器上部署ssm项目
  • 原文地址:https://www.cnblogs.com/nikyxxx/p/2209059.html
Copyright © 2020-2023  润新知