Объяснил на пальцах

Однажды мы проводили собеседование с программистом C#. Наш рекрутер попросил кандидата объяснить принцип объектно-ориентированного программирования простым и понятным языком. Кандидат рассказывает, доходит до принципа полиморфизма и приводит пример: «Вот у меня есть ручка. Я могу ей написать свое имя, а могу воткнуть ее вам в глаз. Это и есть принцип полиморфизма».


P.S. Собеседование кандидат прошел успешно.

Офисные будни

5.1K постов16.2K подписчиков

Добавить пост

Правила сообщества

-не нарушайте вежливость. За нарушение вежливости -бан, ибо это отталкивает посетителей и авторов.

- не нарушайте правила Pikabu и чтите закон.

- добавляйте посты связанные с тематикой сообщества;
-делитесь опытом организации жизни  в офисе и проживания на работе;
-делитесь управленческим опытом;


Бан за неуместную настойчивость: если вы активно, по несколько раз в неделю, в течение длительного времени размещаете сообщения низкого качества, простецкие и незамысловатые, не ориентированные на интересы аудитории, вы отправляетесь в бан сообщества. Ради качества контента.

Вы смотрите срез комментариев. Показать все
1
Автор поста оценил этот комментарий

У человека есть метод писать(IЧемПисать чем).


Вот ручка и есть конкретная имплементация интерфейса IЧемПисать. Кроме ручки можно писать кровью, мелками, карандашом, пальцем в воздухе и т.д.


Плюс у самой ручки есть конструктор или сеттер с параметром IСтержень. И пофигу какой стержень туда придёт -- хоть это будет один класс с параметром цвет или семейство классов, но для ручки это похеру и она будет писать.


Конечно кроме случая NullСтержня, когда он есть, но ничего не делает и нужен как заглушка.

раскрыть ветку (2)
Автор поста оценил этот комментарий

Ну тогда почему пишет ручка, а не стержень, следуя такой логике? У человека скорее есть метод "Использовать предмет", а ручка наследуется от предмета. Представь себе инвентарь в любой игре, и например там есть ручка, думаешь у персонажа есть метод Писать? Он заходит в инвентарь и использует ручку или что-то еще, а в зависимости от реализации конкретный объект что-то делает.

раскрыть ветку (1)
Автор поста оценил этот комментарий

> Ну тогда почему пишет ручка, а не стержень, следуя такой логике?


Тогда ходит не человек, а его ноги? ))


"Использовать предмет" -- это через чур абстрактно. Хотя для поклонников "Hello World Enterprise Edition" это самое оно ))


https://gist.github.com/lolzballs/2152bc0f31ee0286b722

Иллюстрация к комментарию
Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку