Thursday, May 2, 2019

Вопросы по ООП

Полиморфизм - это возможность объектов с одинаковой спецификацией иметь различную реализацию. Это когда вы создаете абстрактный класс Dog с виртуальным либо абстрактным методом Bark что позволяет задать, заменить либо добавить код метода в пронаследованном класе. При этом пронаследованный клас останется экземпляром Dog и будет иметь тот же интерфейс (метод Bark с такой-же сигнатурой что и в базвом класе).

На практике полиморфизм почти всегда связан с наследованием: не пронаследовав класс - не получишь полиморфизма.

Полиморфизм (на понятном языке, опуская нюансы) это параметризация, в языках программирования - это параметризация методов. То есть, вы можете заменять (параметризировать) код в методах и свойствах, не изменяя интерфейса (сигнатуры) функции.

В свою очередь наследование это параметризация класов.
В C# и CLR разделяют два типа параметризации класов
1) С фиксированым базовым класом (обычное наследование классов)
2) С нефиксированным базовым класом (реализация интерфейсов) по средствам этого типа параметризации происходит множественное наследование в CLR

No comments:

Post a Comment