我的朋友问我一个抽象方法是否可以有虚拟修饰符。 我回答说,不可以。 因为抽象方法隐式地也是虚方法,它不能具有虚拟修饰符。
但是在阅读 MSDN文章之一时,我看到了这个:
... 如果一个虚方法被声明为抽象,则对于从抽象类继承的任何类而言,它仍然是虚拟的。 继承抽象方法的类无法访问该方法的原始实现 - 在先前的示例中,F类上的DoWork无法调用D类上的DoWork。通过这种方式,抽象类可以强制派生类为虚方法提供新的方法实现....
我无法正确理解第一句话。 请问他们想表达什么意思?
谢谢。
abstract
关键字在“虚拟性”方面没有任何改变,也就是说方法仍然是virtual
的,因此仍然会表现出多态性。 - BartoszKP