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

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

  • 相关阅读:
    Chrome书签导入IE或Maxthon的程序(三)
    解决word2003自定义工具栏被恢复问题
    Chrome书签导入IE或Maxthon的程序(二)
    解决比较Oracle中CLOB字段问题
    CodeRush Xpress For C#修改配置
    短信发送程序的编写
    poj1696 Space Ant
    数论一(hdoj 简单数学题、推理题)
    poj1338 寻找丑数
    poj2411 Mondriaan's Dream 棋盘覆盖
  • 原文地址:https://www.cnblogs.com/nikyxxx/p/2209059.html
Copyright © 2020-2023  润新知