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.