A virtual method is created in the base class that can be overriden in the derived class. ... When a method is declared as a virtual method in a base class and that method has the same definition in a derived class then there is no need to override it in the derived class.
Do I have to override a virtual method?
When the method is declared as virtual in a base class, and the same definition exists in a derived class, there is no need for override, but a different definition will only work if the method is overridden in the derived class. Two important rules: By default, methods are non-virtual, and they cannot be overridden.
Can only virtual methods be overridden?
No you can't. You can only override a virtual method - see the MSDN here: In C#, derived classes can contain methods with the same name as base class methods.