A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王起 中级黑马   /  2013-3-16 15:41  /  1823 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

如题,override与重载的区别是什么?

评分

参与人数 1技术分 +1 收起 理由
张文 + 1

查看全部评分

4 个回复

倒序浏览
回复 使用道具 举报
重载:方法名相同,参数的类型或个数不同,对权限没有要求,发生在一个类中。
覆写:方法名称、参数类型、返回值类型全部相同,被覆写的方法不能拥有更严格的权限,发生在继承类中。
回复 使用道具 举报
重载:
    方法重载是让类以统一的方式来处理不同的参数类型或不同个数的参数的一种方法。方法重载就是类中可以创建多个方法,它们有相同的名字,但有不同的参数类型和参数个数,调用时通过参数类型参数个数的不同来决定具体调用哪个方法。
    class Person
{
      void name(string a)
      {
            Console.WriteLine("string a!");
      }

       void name(int a)
      {
            Console.WriteLine("int a!");
      }

      void name(string a,int i)
      {
            Console.WriteLine("string a,int i!");
      }

}

重写:
    子类可继承父类的方法,但有时子类并不想原封不动地继承父类的方法,而是想做一定的修改,这就需要采用方法的重写,又称为方法的覆盖。 重写时需将父类的方法设为虚方法,重写的方法需添加override关键字。
   
public class Person
    {
        public Person(string name)
        {
            this.Name = name;
        }
        public virtual void Show()
        {
            Console.WriteLine("父类中的show方法");
        }
    }

    public class Chinese : Person
    {
        public Chinese(string name)
            : base(name)
        {
            
        }
        public override void Show()
        {
            Console.WriteLine("我叫:{0},我是中国人!",Name);
        }
    }
回复 使用道具 举报
重载是方法名称相同,参数类型和参数个数都不想同,override重写基类的方法,方法名和参数类型都相同
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马