首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

C#中virtual 跟abstract用在方法前面有什么不同

2012-10-24 
C#中virtual 和abstract用在方法前面有什么不同?见题![解决办法]virtual方法可以被派生类override...abstr

C#中virtual 和abstract用在方法前面有什么不同?
见题!

[解决办法]
virtual方法可以被派生类override...

abstract方法必须被派生类override...
[解决办法]
一、Virtual方法(虚方法)

virtual 关键字用于在基类中修饰方法。virtual的使用会有两种情况:

情况1:在基类中定义了virtual方法,但在派生类中没有重写该虚方法。那么在对派生类实例的调用中,该虚方法使用的是基类定义的方法。

情况2:在基类中定义了virtual方法,然后在派生类中使用override重写该方法。那么在对派生类实例的调用中,该虚方法使用的是派生重写的方法。

二、Abstract方法(抽象方法)

abstract关键字只能用在抽象类中修饰方法,并且没有具体的实现。抽象方法的实现必须在派生类中使用override关键字来实现。

[解决办法]
在C#中:

抽象方法仅有声明,而没有任何实现,如abstract Method();,虚方法却不能如此
子类继承父类,可以对父类中的虚方法进行重写、覆盖、不处理三种处理,对抽象方法却必须实现

0.0新手吧 。看看书 就知道了
[解决办法]
virtual方法可以被派生类override... 

abstract方法必须被派生类override...
[解决办法]

探讨
virtual方法可以被派生类override...

abstract方法必须被派生类override...

[解决办法]
呵呵..进来学习学习.

[解决办法]
virtual是虚方法,一定要有方法体,在他的派生类中可以用override重写这个方法体,也可以不用重写,用原始的方法。
abstract 是抽象方法,没有方法体,只要声明这个方法就行了,但是在派生类中一定要用override重写这个方法。
[解决办法]
探讨
一、Virtual方法(虚方法)

virtual 关键字用于在基类中修饰方法。virtual的使用会有两种情况:

情况1:在基类中定义了virtual方法,但在派生类中没有重写该虚方法。那么在对派生类实例的调用中,该虚方法使用的是基类定义的方法。

情况2:在基类中定义了virtual方法,然后在派生类中使用override重写该方法。那么在对派生类实例的调用中,该虚方法使用的是派生重写的方法。

二、Abstract方法(抽象…

[解决办法]
探讨
virtual方法可以被派生类override...

abstract方法必须被派生类override...

[解决办法]
virtual有方法体
abstract没有方法体
[解决办法]
virtual有方法体
abstract没有方法体
[解决办法]
可以简单的理解为:
虚方法不能约束子类
抽象方法可以约束子类

热点排行