zoukankan      html  css  js  c++  java
  • 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();
       }
    }

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

  • 相关阅读:
    斐波那契数列的递归和非递归实现
    二叉树遍历
    基础总结
    内部类
    I/O dempo
    读取文件注意事项
    eclipse 主题设置
    String 常用函数
    多态的理解
    ffmpeg处理RTMP流媒体的命令大全
  • 原文地址:https://www.cnblogs.com/nikyxxx/p/2209059.html
Copyright © 2011-2022 走看看