C#中的Virtual VS Sealed VS New VS Abstract

虚拟

virtual关键字允许覆盖一个类。要在子类中覆盖父类方法,请将父类方法声明为virtual。

密封

当一个类被声明为密封的时,它不能被继承,抽象类也不能被声明为密封的。

为防止被覆盖,请使用C#中的密封。在方法上的C#中使用密封的修饰符时,该方法将失去覆盖的功能。密封的方法应该是派生类的一部分,并且该方法必须是重写的方法。

public sealed override void getResult() { }

使用new关键字可从派生类中隐藏基类方法。这是通过用new声明派生类函数来完成的。这就是在Shadowing中使用new的方式。

public new string getResult()

抽象

抽象类包含抽象方法,这些方法由派生类实现。

abstract class Vehicle