Урок 13. Полиморфизм. Абстрактные классы.

.

     Полиморфизм — это одна из самых важных частей объектно — ориентированного программирования. Он играет важную роль в отделении интерфейса от ее реализации. Для новичка довольно сложно понять полиморфизм, поэтому не будем засорять голову теорией, попробуем разобраться на практике. Важно пока усвоить что полиморфизм позволяет работать с разными типами данными, как с одним.



ПРАКТИКА

       Представим что мы хотим описать следующую ситуацию:  у матери было трое детей: сын, дочь и старшая дочь. Любящая мать решила поинтересоваться у своих детей, завтракали они сегодняшним утром или нет. Она начала обращаться к каждому ребенку с вопросом о вышесказанном и от каждого из них получила уникальный ответ.  Создадим абстрактный класс  Mother с абстрактными методами: getName() (который распознает ребенка, то есть узнает кто он, сын дочь или старшая дочь), и методом voice() (который дает ответ матери от каждого ребенка).

     Теперь у нас создан тип данных Mother, от которого будут наследоваться другие классы и реализовывать методы которые описаны в базовом классе. И класс Mother сможет работать с разными классами которые от него унаследовались, как с единым типом данных.

     Опишем детей, просто наследуясь от класса Mother и реализуя его абстрактный методы.

Остальных детей описываем по аналогии.

 

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

Вот такой вот результат я получил:

Untitled 1 Урок 13. Полиморфизм. Абстрактные классы.