2 回答
TA贡献1809条经验 获得超8个赞
C#中的virtula是一个方法修饰符,标识可被覆载的方法。意思是指实际上的,实质上的,虚拟的,虚的。它是定义虚函数的关键字。Virtual方法分为虚方法和抽象方法。
一、Abstract抽象方法
abstract关键字只能用在抽象类中修饰方法,并且没有具体的实现。抽象方法的实现必须在派生类中使用override关键字来实现。
abstract:抽象方法声明使用,是必须被派生类覆写的方法,抽象类就是用来被继承的;可以看成是没有实现体的虚方法;如果类中包含抽象方法,那么类就必须定义为抽象类,不论是否还包含其他一般方法;抽象类不能有实体的。
二、Virtual虚方法
virtual关键字用于在基类中修饰方法。virtual的使用会有两种情况:
1、在基类中定义了virtual方法,但在派生类中没有重写该虚方法。那么在对派生类实例的调用中,该虚方法使用的是基类定义的方法。
2、在基类中定义了virtual方法,然后在派生类中使用override重写该方法。那么在对派生类实例的调用中,该虚方法使用的是派生重写的方法。
扩展资料
virtual用虚方法标记:
a、可在派生类中以override覆盖此方法
b、不覆盖也可由对象调用
c、无此标记的方法(也无其他标记),重写时需用new隐藏原方法
abstract 与virtual : 方法重写时都使用 override 关键字
接口可以通过类来实现,当类的基列表同时包含基类和接口时,列表中首先出现的是基类;类必须要实现其抽象方法。
接口定义以大写字母I开头。方法只定义其名称,在C#中,方法默认是公有方法;用public修饰方法是不允许的,否则会出现编译错误;接口可以从别的接口继承,如果是继承多个接口,则父接口列表用逗号间隔。
TA贡献1777条经验 获得超3个赞
virtual关键字用于指定属性或方法在派生类中重写.
默认情况下,派生类类从其基类继承属性和方法,如果继承的属性或方法需要在派生类中有不同的行为,则可以重写它,即可以在派生类中定义该属性或方法的新实现,这时在基类中该属性或方法必须用virtual关键字修饰.virtual关键字用于指定属性或方法时可以在派生类中重写.具有virtual关键字的方法或属性被称作虚拟成员.
class A
{
public virtual void F(){}
}
class B:A
{
public override void F(){}
}
- 2 回答
- 0 关注
- 564 浏览
添加回答
举报