oop - virtual methods for Update() and Start() and other monobehaviour methods

What does adding the virtual modifier do exactly to virtual void Update() - and other monobehaviour methods for example?

It makes it so you can override them in classes that inherit from whatever class you put the virtual modifiers in. It’s a part of inheritance.