Все сильнее убеждаюсь что средняя особь кожаных мешков не шарит за формализациюне заблуждайся, у тебя типичная 'ошибка выжившего', статистика народонаселения неверно собирается... те кто понимают просто не будут задавать тут вопросы, т.е. просто среднестатистически тебе будут чаще тут попадаться люди, которые не понимают или даже не могут понять, просто потому что к их количеству не будут добавляться те кто понимают.
чтобы твой код понимал с каким именно объектом он имеет дело в рантайме, ведь в си (в типизированных языках) без виртуальных методов этим будет заниматься исключительно компилятор.
добавлю для непонятливых - виртуальные методы сильно медленнеей обычных, потому что для их вызова нужно прочитать 2 дополнительных числа из памяти (получить адрес таблицы виртуальных методов и узнать адрес соответствующего метода) когда как обычные функции компилятор и так знает где адрес метода еще на этапе компиляции