То есть даже если взять любое наследование (на примере того же C++), то все, что происходит в памяти - это [ParentClass, ChildClass], с поправкой на тонкости реализации. То есть в любом случае это сахар, но он скрыт под капотом. Наследование, и прочие плюшки - это лишь стероиды
в сахар можно записать все что более высокого уровня чем машинные коды
Да, в терминологии нужно искать баланс. Я считаю полиморфизмом, когда один код может работать с разными типами/реализациями. В твоем примере код do работал только с одной реализацией - класса A. А для полиморфизма поддержка со стороны языка то не очень и нужна. Вон в ядре хуячат на C, и пользуются полиморфизмом вовсю. Достаточно иметь структуру с поинтерами на методы, и уметь кастить поинтеры из наследуемой структуры в базовую и обратно. В общем, просто не нужно теплое с мягким путать: полиморфизм - это полиморфизм, а syntax sugar - это syntax sugar.
Обсуждают сегодня