黑马程序员技术交流社区

标题: override与重载的区别? [打印本页]

作者: 王起    时间: 2013-3-16 15:41
标题: override与重载的区别?
如题,override与重载的区别是什么?
作者: 边道坚    时间: 2013-3-16 15:45
http://bbs.itheima.com/forum.php ... 4%E5%8C%BA%E5%88%AB   可以看看这个
作者: jdzzlf    时间: 2013-3-16 16:15
重载:方法名相同,参数的类型或个数不同,对权限没有要求,发生在一个类中。
覆写:方法名称、参数类型、返回值类型全部相同,被覆写的方法不能拥有更严格的权限,发生在继承类中。
作者: 张怀晶    时间: 2013-3-16 17:41
重载:
    方法重载是让类以统一的方式来处理不同的参数类型或不同个数的参数的一种方法。方法重载就是类中可以创建多个方法,它们有相同的名字,但有不同的参数类型和参数个数,调用时通过参数类型参数个数的不同来决定具体调用哪个方法。
    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);
        }
    }

作者: 马胜骁    时间: 2013-3-16 17:52
重载是方法名称相同,参数类型和参数个数都不想同,override重写基类的方法,方法名和参数类型都相同




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2