рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

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

Наследование - раздел Программирование, Наследование Одним Из Главных Достоинств Классов Является То, Что Они Обладают Свойством Н...

Одним из главных достоинств классов является то, что они обладают свойством наследования. Любой класс может быть объявлен как класс - потомок ранее описанного класса. В этом случае он наследует все данные и методы класса родителя. Т. е. класс - потомок будет содержать( и может использовать ) как собственные данные и методы, так и данные и методы класса родителя.

Для объявления класса - потомка необходимо после ключевого слова class в скобках указать имя класса родителя и далее по общим правилам объявления классов записать поля и методы класса потомка.

Форма записи

Type

идткп = class ( идткр )

. . . . . . . . . . . . {поля и методы

. . . . . . . . . . . . класса потомка }

End;

Пример. Для работы с линиями мы можем объявить в программе класс TLine следующим образом:

 

Type TLine = class

X , Y : Integer ;

Color : Word ;

Vis : Boolean ;

XE, YE :Integer ;

procedure SetLocation ( Nx , Ny : Integer ) ;

procedure SetColor ( NewColor : Word ) ;

procedure Setvisible ( Vis : Boolean ) ;

procedure SetLineLoc ( Var Xa , Ya , Xb , Yb : Integer );

Procedure SetLineVisible ( Vis : Boolean ) ;

End ;

 

Если сравнить это объявление класса Tline с объявлением класса Tpoint (см. выше), то нетрудно заметить, что в обоих объявлениях есть общие фрагменты (выделены жирным шрифтом). Поэтому более компактную запись можно получить если объявить класс TLine как наследник класса TPoint, то есть:

 

Type TPoint = Class

. . . . . . . .

End;

TLine = class ( TPoint )

XE , YE :Integer ;

{задание нового положения линии }

procedure SetLineLoc ( Var Xa , Ya , Xb , Yb : Integer );

{ вывод или гашение линии }

procedure SetLineVisible ( Vis : Boolean ) ;

End ;

Таким образом механизм наследования позволяет существенно сократить затраты на описание классов.

Замечания:

1. Класс родитель должен быть объявлен до класса потомка.

2. Потомок наследует данные и методы не только своего непосредственного родителя, но и всех предшествующих предков. Например, если имеем структуру классов, приведенную на рис. 5.22.1, то класс D наследует данные и методы всех предшествующих классов, т.е. классов В и А.

 

Рис.5.22.1. Иерархия классов

 

3. У каждого класса может быть сколько угодно потомков и только один непосредственный предок (например, у класса E на рис. 5.22.1 только один непосредственный предок - класс В).

Наследование позволяет создавать иерархию классов. Эта иерархия может иметь сложную древовидную структуру.

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

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

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

 

– Конец работы –

Эта тема принадлежит разделу:

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

На сайте allrefs.net читайте: Наследование.

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Наследование

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

Полиморфизм
  Полиморфизм – это возможность использовать одинаковые имена для методов, входящих в различные классы. Класс-потомок может не только дополнять поля и методы класса-родителя, но и зам

Динамическая память
  В Object Pascal (да и в других подобных языках) объекты - это динамические структуры. Переменная - объект содержит не данные, а ссылку на данные объекта. При описании объектов мы не

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги