Всё сводится к следующему: у тебя есть ссылка или указатель на родительский класс А, которая, тем не менее, может указывать на экземпляр любого класса-наследника А. Ты не знаешь, какой именно там экземпляр. Но у него есть функция f, и ты её вызываешь. Вызывается функция f, переопределенная в дочернем классе.
Разновидность: ты вызываешь функцию g, которая не переопределялась, а она уже вызывает f. Паттерн "шаблонный метод".
В мире js этим никого не удивишь, но в тех же плюсах, если метод f не виртуальный, то со ссылки на А, не получится вызвать дочерний - компилятор заранее зашил для этого вызова адрес родительского метода из класса А.