Наследование

Наследование — процесс, посредством которого один объект получает свойства другого объекта. Это важно, поскольку он поддерживает концепцию иерархической классификации. Как уже отмечалось, большинство сведений становится доступным для понимания посредством иерархических (т.е. нисходящих) классификаций. Например, золотистый ретривер — часть классификации собака, которая, в свою очередь, относится к классу млекопитающие, а тот — к еще большему классу животных. Без использования иерархий каждый объект должен был бы явно определять все свои характеристики. Однако благодаря наследованию объект должен определять только те из них, которые делают его уникальным внутри класса. Объект может наследовать общие атрибуты от своего родительского объекта. Таким образом, механизм наследования обеспечивает возможность того, чтобы один объект был особым экземпляром более общего случая. Рассмотрим этот процесс подробнее.

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

Если требуется привести абстрактное описание животных, можно сказать, что они обладают определенными атрибутами, такими как размеры, уровень интеллекта и тип скелета. Животным присущи также определенные особенности поведения: они едят, дышат и спят. Приведенное описание атрибутов и поведения — определение класса животных.

Если бы требовалось описать более конкретный класс животных, например млекопитающих, нужно было бы указать более конкретные атрибуты, такие как тип зубов и молочных желез. Это определение называют подклассом животных, которые относятся к суперклассу (родительскому классу) млекопитающих. Поскольку млекопитающие — всего лишь более точно определенные животные, они наследуют все атрибуты животных. Подкласс нижнего уровня иерархии классов наследует все атрибуты каждого из его родительских классов .

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