Как и большинство вещей, простой ответ: это зависит.
Указание super или base позволяет «расширять» метод, добавляя функциональность к тому, что уже существует в базовой реализации. Этот код может потребоваться выполнить до, после или с обеих сторон вызова базовой функциональности. Все сводится к тому, что ваша переопределенная реализация должна делать сверх базовой реализации.
В некоторых местах, по крайней мере, в C #, вы не можете выбирать. Например, конструкторы производных классов в C # должны определить базовый конструктор в своем объявлении (по умолчанию это конструктор без параметров, если таковой существует). Код базового класса ВСЕГДА выполняется перед производным классом, и вы не можете просто вызвать base(x,y)
из конструктора.