新人求助:C# 重写Override的作用是什么?为什么要重写呢,直接新建方法不是一样吗?

反正要重写方法,为什么不直接新建方法呢,工作量不是一样吗?... 反正要重写方法,为什么不直接新建方法呢,工作量不是一样吗? 展开
 我来答
allenlew312
推荐于2016-01-13 · TA获得超过297个赞
知道小有建树答主
回答量:99
采纳率:0%
帮助的人:72.1万
展开全部
你对继承和多态的好处不了解。
比如说,如果你想实现人吃饭,人作为父类,有吃()这个行为。小孩作为人的一个子类,重写吃方法,不光有咀嚼和下咽的动作,还要求东西是甜的。
这时,有一个人贩子贩卖人口了,套上麻袋就走。麻袋里的人作为一个参数,被人贩子带走,人贩子要负责这个人的吃方法。但是拐卖前,他是不知道这个人是什么样的,他还是要准备调用这个人的吃()方法。
这样,如果拐卖了普通人
Person person=new Person();
那么person.吃()就是父类的吃方法
如果拐卖了小孩
Person person=new Child();
人贩子还调用person.吃(),但是这时候他就要准备甜食!
重写方法就是为了实现多态特性,楼主在多看看相关资料,做些练习理解下
聚保华泰
2024-10-21 广告
商业综合责任险(Commercial General Liability, CGL)是我们聚保华泰保险为众多企业客户提供的核心保障之一。它旨在覆盖企业在日常运营中可能因意外事故、疏忽或过失导致的第三方人身伤害、财产损失而面临的法律责任及赔偿... 点击进入详情页
本回答由聚保华泰提供
乃甦
2014-01-14 · 超过17用户采纳过TA的回答
知道答主
回答量:112
采纳率:0%
帮助的人:26.9万
展开全部
工作量不一样,你如果只有一个子继承父的,那是工作量没差的。但是如果继承父的多,代码一样的完全可以写在父,有子不一样的,自己重写就好了。
量多的时候就可以对比出效率来了。
望采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
panxiang1017
2014-01-14 · 超过18用户采纳过TA的回答
知道答主
回答量:131
采纳率:0%
帮助的人:60.6万
展开全部
要扩展或修改继承的方法、属性、索引器或事件的抽象实现或虚实现,必须使用 override 修饰符。
而且override的方法里面可以使用 base.xxx来调用基类的这个方法
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ttqs5
2014-01-14 · TA获得超过408个赞
知道小有建树答主
回答量:346
采纳率:0%
帮助的人:335万
展开全部
class A
{
  public void print()
  {
  //balabala
  }
}
class B:public A
{
  public override void print()
  {
  //balabala
  }
}

void Print(A a)
{
  a.print();
}
void DoSomething()
{
  A a=new a();
  B b=new b();
  Print(a);
  Print(b);
}

//重写才能达到这种效果,你说重新写个函数,那void Print这个函数就要写两份了,类因为需求可以再加,但相关函数不应该因此受牵连
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jzdcf
2020-07-02
知道答主
回答量:45
采纳率:0%
帮助的人:13.8万
展开全部
如果父类中一个方法Func()里有20行代码,子类要实现父类一样的这20行代码的话,不重写就得写20行代码,重写的话直接base.Func();
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式