新人求助:C# 重写Override的作用是什么?为什么要重写呢,直接新建方法不是一样吗?
5个回答
展开全部
你对继承和多态的好处不了解。
比如说,如果你想实现人吃饭,人作为父类,有吃()这个行为。小孩作为人的一个子类,重写吃方法,不光有咀嚼和下咽的动作,还要求东西是甜的。
这时,有一个人贩子贩卖人口了,套上麻袋就走。麻袋里的人作为一个参数,被人贩子带走,人贩子要负责这个人的吃方法。但是拐卖前,他是不知道这个人是什么样的,他还是要准备调用这个人的吃()方法。
这样,如果拐卖了普通人
Person person=new Person();
那么person.吃()就是父类的吃方法
如果拐卖了小孩
Person person=new Child();
人贩子还调用person.吃(),但是这时候他就要准备甜食!
重写方法就是为了实现多态特性,楼主在多看看相关资料,做些练习理解下
比如说,如果你想实现人吃饭,人作为父类,有吃()这个行为。小孩作为人的一个子类,重写吃方法,不光有咀嚼和下咽的动作,还要求东西是甜的。
这时,有一个人贩子贩卖人口了,套上麻袋就走。麻袋里的人作为一个参数,被人贩子带走,人贩子要负责这个人的吃方法。但是拐卖前,他是不知道这个人是什么样的,他还是要准备调用这个人的吃()方法。
这样,如果拐卖了普通人
Person person=new Person();
那么person.吃()就是父类的吃方法
如果拐卖了小孩
Person person=new Child();
人贩子还调用person.吃(),但是这时候他就要准备甜食!
重写方法就是为了实现多态特性,楼主在多看看相关资料,做些练习理解下
聚保华泰
2024-10-21 广告
2024-10-21 广告
商业综合责任险(Commercial General Liability, CGL)是我们聚保华泰保险为众多企业客户提供的核心保障之一。它旨在覆盖企业在日常运营中可能因意外事故、疏忽或过失导致的第三方人身伤害、财产损失而面临的法律责任及赔偿...
点击进入详情页
本回答由聚保华泰提供
展开全部
工作量不一样,你如果只有一个子继承父的,那是工作量没差的。但是如果继承父的多,代码一样的完全可以写在父,有子不一样的,自己重写就好了。
量多的时候就可以对比出效率来了。
望采纳
量多的时候就可以对比出效率来了。
望采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
要扩展或修改继承的方法、属性、索引器或事件的抽象实现或虚实现,必须使用 override 修饰符。
而且override的方法里面可以使用 base.xxx来调用基类的这个方法
而且override的方法里面可以使用 base.xxx来调用基类的这个方法
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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这个函数就要写两份了,类因为需求可以再加,但相关函数不应该因此受牵连
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果父类中一个方法Func()里有20行代码,子类要实现父类一样的这20行代码的话,不重写就得写20行代码,重写的话直接base.Func();
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询