因为需要经常切换C++/C#平台编程,一次性解析下这些关键字吧,写多了容易混。。。
首先呢这些关键字不是两个平台都有的,具体如下:
Virtual | Abstract | override | final | Interface | Sealed | |
---|---|---|---|---|---|---|
C# | √ | √ | √ | × | √ | √ |
C++ | √ | × | √ | √ | × | × |
Virtual与override、final、Sealed
C#:
1.virtual 关键字用于修饰方法、属性、索引器或事件声明,并使它们可以在派生类中被重写。 例如,此方法可被任何继承它的类重写。
2.override方法,是在子类中重写父类中的方法,两个函数的函数特征(函数名、参数类型与个数)相同。用于扩展或修改继承的方法、属性、索引器或事件的抽象或虚拟实现。
3.没有final关键字。
4.Sealed关键字应用于某个类时,sealed 修饰符可阻止其他类继承自该类①。 还可以对替代基类中的虚方法或属性的方法或属性使用 sealed 修饰符。 这使你可以允许类派生自你的类并防止它们替代特定虚方法或属性②。功能类似于C++中的final关键字。
virtual+override举例:
public class car
{
public virtual void Weight()
{