When do I need Virtual keyword?

In reply to sylee:

That could should have produce an error, you cannot construct a virtual/abstract class.
Please see

https://verificationacademy.com/content/re-use-abstract-class-0

The reason for the virtual keyword instead of using abstract was to keep the number of new keywords down, and virtual tends to mean something that appears but is not quite there.