哪位大侠给我讲讲c#中virtual, abstract和override的区别和用法,不胜感激,初学者,刚学这段,非常迷糊

希望能通俗易懂一些,我看过CSDN上面的解释,没看明白。先谢谢各位了。... 希望能通俗易懂一些,我看过CSDN上面的解释,没看明白。先谢谢各位了。 展开
 我来答
秦爱传c5
推荐于2017-11-25 · TA获得超过2051个赞
知道小有建树答主
回答量:635
采纳率:50%
帮助的人:311万
展开全部
virtual是把一个方法声明为虚方法,使派生类可重写此方法,一般建立的方法是不能够重写的,譬如类A中有个方法
protected void method(){
原代码....;
}
类B继承自类A,类B能够调用类A的method()方法,但不能更改方法体代码,但当类A中使用了virtual声明此方法: protected virtual void method(),那么类B可通过使用override重写此方法
protected override void method(){
新代码....;
}
virtual可在基类、抽象类中使用
而使用abstract声明的方法,为抽象方法,抽象方法没有代码体,只有一个方法名的声明:
protected abstract void method();
当使用abstract声明的方法,其派生类必须要重写此方法,如上面一句为抽象类A中声明的,类B继承自抽象类A,那么类B中必须要使用override重写此方法
protected override void method(){
新代码....;
}
但abstract只能在抽象类中使用
override就是派生类重写父类方法(包括虚方法、抽象方法,接口方法)时的关键字,反正你要重写方法,就使用override声明
百度网友d3a0377
2013-03-13 · TA获得超过187个赞
知道小有建树答主
回答量:507
采纳率:50%
帮助的人:232万
展开全部
建议你在程序中理解,最好加断点自己调试例子,这样理解比较快。
更多追问追答
追问
看了好多遍程序,还是有点搞不懂啊,大侠
追答
要不你看看视频讲解
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式