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

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

  • 相关阅读:
    SQL查询SP代码
    MS SQL Server:查询死锁进程(转载)
    批编译、重新编译和计划缓存
    sql like获取以逗号分割的字段内的数据
    SQL Server 2005—数据库管理10个最重要的特点(转载)
    SQL2005数据库镜像配置脚本
    转:SQL 语句优化
    转:SQL SERVER什么时候写日志
    MDX查询几个经典示例
    尾日志备份和时间点还原
  • 原文地址:https://www.cnblogs.com/nikyxxx/p/2209059.html
Copyright © 2011-2022 走看看