Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Наследование. Наследование это передача подклассу свойств, структуры и поведения суперкласса






Наследование это передача подклассу свойств, структуры и поведения суперкласса. Однако передача свойств и структуры это механизм, а не цель. Реальных целей несколько. К ним относится, например, упорядочивание типов сущностей, то есть классификация сущностей в системе. Действительно, не так просто разобраться в ньюансах, отличающих один тип сущности от другого типа, если не представлять иерархию их развития, ее идеологическую основу.

Благодаря классификации становится возможным введение и широкое практическое использование абстракции. Абстракция дает возможность исключить из рассмотрения малозначительные детали и сосредоточиться на том, что действительно важно на данном уровне рассмотрения. Как правило, абстракция используется для определения интерфейса, который позже реализуется и детализируется в подклассах. Например, можно реализовать абстрактное предприятие и определить необходимый интерфейс, который позволит взаимодействовать предприятию с внешним миром: другими предприятиями, государственными учреждениями и т.п. При этом неважно, чем будет заниматься это предприятие.

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

Итак, наследование позволяет классифицировать используемые программные сущности, вводить высокоуровневые абстракции, передавать свойства и структуру суперкласса своим подклассам, что позволяет существенно экономить код. Наконец, наследование определяет направление развития классов, что существенно облегчает разработку иерархии классов, отражающей частный, но важный случай взаимосвязи между сущностями реальной предметной области.

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

Например, для классов фигур можно использовать методы Скрыть(Hide), Отобразить (Draw). Несмотря на то, что все фигуры различны, данный шаблон поведения будет корректно работать для любой из этих фигур благодаря полиморфизму.

Обычно полиморфизм рассматривают как составную часть механизма наследования. Считается, что полиморфными могут быть только свойства (методы) подклассов. Но это узкая трактовка. Например, летать могут птицы, насекомые, механические аппараты. Означает ли это, что они имеют общего летающего предка? Конечно, нет.

Основное достоинство полиморфизма заключается в том, что он позволяет различным классам иметь семантически однородные свойства. Благодаря этому становится возможным однотипно взаимодействовать с различными классами.

Полиморфизм реализуется через наследование и интерфейсы.






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.