C#中什么时候选择用重写和重载?为什么用?有什么区别?
4个回答
展开全部
ps:我假期有1个计划,打算坐火车去南京旅游
重写就是 我去西藏旅游了,
重载就是我坐飞机去的南京
重写就是 我去西藏旅游了,
重载就是我坐飞机去的南京
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
再拿动物界作例子。
父类Animal ,有个方法叫virtual void Run()
{console.writeline("跑起来!");}
子类Cat继承Animal
重写了Run,override void Run(){console.writeline("飞快的跑起来!");}
子类Dog继承了Animal同样不用重写,因为Dog就表现为跑起来,不用重写。
Dog类里面有个方法叫private void Eat(){console.writeline("什么都吃!")};
然后再写个重载方法叫private void Eat(object obj){console.writeline("{0}","我只吃'"+object+"' ");}
父类Animal ,有个方法叫virtual void Run()
{console.writeline("跑起来!");}
子类Cat继承Animal
重写了Run,override void Run(){console.writeline("飞快的跑起来!");}
子类Dog继承了Animal同样不用重写,因为Dog就表现为跑起来,不用重写。
Dog类里面有个方法叫private void Eat(){console.writeline("什么都吃!")};
然后再写个重载方法叫private void Eat(object obj){console.writeline("{0}","我只吃'"+object+"' ");}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
重写是发生在父类与子类之间的关系。具体来讲就是子类可以重写父类的现有的方法。它要求子类的方法名称及参数必须与父类完全一致。比如吃饭,父亲可以吃两碗面,孩子同样也是吃面,却只能吃一碗。
重载则主要是发生在同一个类当中的,它通过多个名称相同的方法,但方法参数不相同,或者方法返回类型不相同来加以区别。其中,方法参数不相同包括以下几种情况:参数的个数不相同,参数的类型不相同,参数的对应位置不相同。需要说明的是,重载同样可以应用到父类与子类当中。即子类重载了父类的方法。
重载则主要是发生在同一个类当中的,它通过多个名称相同的方法,但方法参数不相同,或者方法返回类型不相同来加以区别。其中,方法参数不相同包括以下几种情况:参数的个数不相同,参数的类型不相同,参数的对应位置不相同。需要说明的是,重载同样可以应用到父类与子类当中。即子类重载了父类的方法。
参考资料: http://hi.baidu.com/nbwd/blog/item/0144adc3a0823850b219a848.html
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询