When do I need Virtual keyword?

virtual class/abstract class:
if you are declaraing a class as virtual then it means that class can’t be instantiated. virtual class are used to implement any base class which can only be extended. as you have done in your test1 where you define a virtual class and then derived a child class from that base class.