Наследственность в Delphi

Наследственность в Delphi

Классы обладают достаточно большим количеством преимуществ. Наследст­венность — одно из них. В некоторых книгах данное свойство классов начинают описывать только к середине книги, но это большая ошибка.

 

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

 

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

 

Ваш новый объект сразу примет все свойства гаража. Это значит, что уже есть стены, пол и потолок, и остается доба­вить только окна и интерьер. Теперь у вас будет уже два объекта: гараж и дом. 

Используя данный прием, можно, например, создать еще будку для собаки. Для этого снова создается объект "Будка", который происходит от "Гаража" (можете произвести построение от "Дома", чтобы в будке у собаки был интерьер, но это мне кажется лишним, собака этого просто не оценит). 
Нужно только уменьшить размер гаража, изменить вход, и он превратится в будку. В итоге получается древовидная иерархия наследования свойств объектов, которая показана на рис.

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

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

Точно такой же метод наследования принят и в объектно-ориентированных язы­ках. На рис. 4.2 показан фрагмент иерархии объектов Delphi. Как видно из рисунка, все объекты происходят от TObject. Это базовый объект, который реализует ос­новные свойства И методы. От него происходит TPersistent И TThread. В реально­сти от TObject происходит намного больше объектов, и все они знают о его свой­ствах и методах и наследуют их себе.

Наследственность в Delphi

dle

Помоги проекту! Расскажи друзьям об этом сайте: