Virtual methods have an implementation & provide derived class an option to override the method.
While Abstract methods don't have the implementation & force the derived class to override the method.