C#中virtual和abstract的区别

 我来答
匿名用户
2015-09-01
展开全部
virtual表示成员可以在派生类中被重写。如果派生类没有重写,则直接使用父类的原始成员。
默认情况下,非virtual的方法不能被重写。
virtual 修饰符不能与 static、abstract,
private 或 override 修饰符一起使用。
除了声明和调用语法不同外,virtual属性的行为与抽象方法一样。

abstract表明成员是一个抽象的。其特点:

1。抽象类不能实例化。

2。抽象类可以包含抽象方法和抽象访问器。

3。从抽象类派生的非抽象类必须包括继承的所有抽象方法和抽象访问器的实实现。
mafangsan
推荐于2018-04-11 · TA获得超过1.2万个赞
知道大有可为答主
回答量:1万
采纳率:71%
帮助的人:2519万
展开全部
virtual和abstract都是用来修饰父类的,通过覆盖父类的定义,让子类重新定义。
(1)virtual修饰的方法必须有实现(哪怕是仅仅添加一对大括号),而abstract修饰的方法一定不能实现。
(2)virtual可以被子类重写,而abstract必须被子类重写。
(3)如果类成员被abstract修饰,则该类前必须添加abstract,因为只有抽象类才可以有抽象方法。
(4)无法创建abstract类的实例,只能被继承无法实例化。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式