Постараюсь объяснить: при объявлении функции, оператор override говорит о том, что эту функцию нужно ПЕРЕЗАПИСАТЬ или ДОПОЛНИТЬ. Для того, чтобы была такая возможность, в родительском классе, перед объявлением функции, должен быть оператор virtual, так же он должен присутствовать во всех дочерних классах при переопределении. Super - это как раз таки служит для дополнения функции: если super есть, то все команды из родительской функции будут прописаны на место super, а далее ещё функцию можно ДОПОЛНИТЬ. Если super-а нет, то при вызове функции мы НЕ используем команды из родительской функции, а перезаписываем с нуля. Пример: родительская функция при вызове печатает на экран сообщение "Hallo, Vasya". Если в дочерней функции напишем Super::(название функции), после чего так же напишем функцию вывода сообщения на экран "
How are you?", то при вызове дочерней функции получим 2 сообщения "Hallo, Vasya", "How are you?". В ином случае, если бы мы не использовали оператор Super, то при вызове дочерней функции мы бы получили только "How are you?". Надеюсь понятно. Если что - пишите.