社区
C#
帖子详情
C#中virtual 和abstract用在方法前面有什么不同?
guo_jianwen
2009-03-30 08:05:46
见题!
...全文
425
14
打赏
收藏
C#中virtual 和abstract用在方法前面有什么不同?
见题!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
14 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
LiuShanLiang
2012-10-16
打赏
举报
回复
这两者还有没有其他区别,比方说,把子类赋给一个基类对象时。[Quote=引用 2 楼 的回复:]
一、Virtual方法(虚方法)
virtual 关键字用于在基类中修饰方法。virtual的使用会有两种情况:
情况1:在基类中定义了virtual方法,但在派生类中没有重写该虚方法。那么在对派生类实例的调用中,该虚方法使用的是基类定义的方法。
情况2:在基类中定义了virtual方法,然后在派生类中使用override重写该方法。那么在对派生类……
[/Quote]
sushou2009
2009-04-01
打赏
举报
回复
可以简单的理解为:
虚方法不能约束子类
抽象方法可以约束子类
fskjb01
2009-03-31
打赏
举报
回复
virtual有方法体
abstract没有方法体
fskjb01
2009-03-31
打赏
举报
回复
virtual有方法体
abstract没有方法体
龙宜坡
2009-03-31
打赏
举报
回复
[Quote=引用 1 楼 vrhero 的回复:]
virtual方法可以被派生类override...
abstract方法必须被派生类override...
[/Quote]
哈哈潜伏哥
2009-03-31
打赏
举报
回复
[Quote=引用 2 楼 fengjian_428 的回复:]
一、Virtual方法(虚方法)
virtual 关键字用于在基类中修饰方法。virtual的使用会有两种情况:
情况1:在基类中定义了virtual方法,但在派生类中没有重写该虚方法。那么在对派生类实例的调用中,该虚方法使用的是基类定义的方法。
情况2:在基类中定义了virtual方法,然后在派生类中使用override重写该方法。那么在对派生类实例的调用中,该虚方法使用的是派生重写的方法。
二、Abstract方法(抽象…
[/Quote]
都是对的,不过这个说的详细点,容易懂点,建议结贴考虑。
guo_jianwen
2009-03-31
打赏
举报
回复
大侠们,可不可以用几个例子来说明啊,咱们从实际出发
santawcj
2009-03-30
打赏
举报
回复
virtual是虚方法,一定要有方法体,在他的派生类中可以用override重写这个方法体,也可以不用重写,用原始的方法。
abstract 是抽象方法,没有方法体,只要声明这个方法就行了,但是在派生类中一定要用override重写这个方法。
lidss1234
2009-03-30
打赏
举报
回复
呵呵..进来学习学习.
C_sdnElf
2009-03-30
打赏
举报
回复
[Quote=引用 1 楼 vrhero 的回复:]
virtual方法可以被派生类override...
abstract方法必须被派生类override...
[/Quote]
up
tmd456
2009-03-30
打赏
举报
回复
virtual方法可以被派生类override...
abstract方法必须被派生类override...
xiaoyyyyyyyyyyy
2009-03-30
打赏
举报
回复
在C#中:
抽象方法仅有声明,而没有任何实现,如abstract Method();,虚方法却不能如此
子类继承父类,可以对父类中的虚方法进行重写、覆盖、不处理三种处理,对抽象方法却必须实现
0.0新手吧 。看看书 就知道了
fengjian_428
2009-03-30
打赏
举报
回复
一、Virtual方法(虚方法)
virtual 关键字用于在基类中修饰方法。virtual的使用会有两种情况:
情况1:在基类中定义了virtual方法,但在派生类中没有重写该虚方法。那么在对派生类实例的调用中,该虚方法使用的是基类定义的方法。
情况2:在基类中定义了virtual方法,然后在派生类中使用override重写该方法。那么在对派生类实例的调用中,该虚方法使用的是派生重写的方法。
二、Abstract方法(抽象方法)
abstract关键字只能用在抽象类中修饰方法,并且没有具体的实现。抽象方法的实现必须在派生类中使用override关键字来实现。
vrhero
2009-03-30
打赏
举报
回复
virtual方法
可以
被派生类override...
abstract方法
必须
被派生类override...
C#
111,126
社区成员
642,541
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章