Классы должны быть предназначены для наследования :
Если базовый класс спроектирован таким образом, что вызов базовых версий определенных методов является необязательным, то можно пропустить эти вызовы.
Если базовый класс спроектирован таким образом, что базовые версии ДОЛЖНЫ быть вызваны, то не следует их опускать.
Обсуждение того, является ли это "хорошей практикой", по моему мнению, упускает из виду. Способ, которым класс структурирован для наследования, основан на его цели и дизайне. Решение о том, вы МОЖЕТ или ДОЛЖНО вызывать базовые версии метода, является частью классов public interface в отношении наследования .
Вы не можете решить, когда будет желательно или не желательно вызывать метод базового класса, когда вы переопределяете, не понимая, как разработан базовый класс и для какой цели служит каждый метод.