@okonoshi

Зачем в классе пустые методы?

В одном видео объяснили "полиморфизм" таким примером : есть класс родитель, там есть пустой метод makeSound() , мы создали 2 дочерних класса, в них прописали этот же метод с разными действиями.
И в задании тоже есть такое, мол создайте пустой метод, а в дочерке напишите действие.
В чем смысл я не понимаю? зачем в родителе расписывать пачку пустых методов? Если для каждого класса их писать потом отдельно
  • Вопрос задан
  • 148 просмотров
Пригласить эксперта
Ответы на вопрос 2
EnGold
@EnGold
Ну, если я не ошибаюсь, то это необхидимо для преобразование типы данных, ведь если один класс будет отличаться от другого, то у вас не получиться преобразовать их и вы прописываете все методы в родительском классе, чтобы реализовать их в дочерных классах и чтобы дочерные были схожи между собой и при необходимости вы могли преобразовать их... По крайней мере я так думаю
Ответ написан
Комментировать
Alexandroppolus
@Alexandroppolus
кодир
Всё сводится к следующему: у тебя есть ссылка или указатель на родительский класс А, которая, тем не менее, может указывать на экземпляр любого класса-наследника А. Ты не знаешь, какой именно там экземпляр. Но у него есть функция f, и ты её вызываешь. Вызывается функция f, переопределенная в дочернем классе.
Разновидность: ты вызываешь функцию g, которая не переопределялась, а она уже вызывает f. Паттерн "шаблонный метод".

В мире js этим никого не удивишь, но в тех же плюсах, если метод f не виртуальный, то со ссылки на А, не получится вызвать дочерний - компилятор заранее зашил для этого вызова адрес родительского метода из класса А.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы