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

Перекрытие элементов класса в производных классах

Читайте также:
  1. Аустенитного класса
  2. Базовые схемы логических элементов .
  3. Биологические особенности гельминтов класса трематод
  4. Биологические особенности гельминтов класса цестод
  5. Большое сухогрузное судно класса «река-море», имеющее трюма с люковыми закрытиями, с двойными бортами и двойным дном, с машинным отделением и надстройкой в кормовой части.
  6. Буквенные позиционные обозначения основных элементов
  7. В 1. Влияние легирующих элементов на свариваемость сталей.
  8. ВОПРОС №1. Правовое значение элементов налога.
  9. Выбор класса точности ПП.
  10. Выбор элементов системы управления затратами
  11. Вычисление элементов свободной поверхности потока
  12. для 2 класса начальной школы

В механизме наследования можно условно выделить три основных момента:

ƒ наследование полей;

ƒ наследование свойств;

ƒ наследование методов.

 

Свойство базового класса можно перекрыть (override) в производном классе, например, чтобы добавить ему новый атрибут доступа или связать с другим полем или методом.

В наследнике можно вызвать перекрытый метод предка, указав перед именем метода зарезервированное слово inherited. Когда метод предка полностью совпадает с методом потомка по формату заголовка, то можно использовать более короткую запись.

 

Главные черты классов:

1) Классы инкапсулируют (т.е. включают в себя) поля, методы и свойства;

2) Способность наследовать поля, методы и свойства других классов.

 

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

Ответ: чтобы на его основе определить (породить) два других класса— TDelimitedReader и TFixedReader, предназначенных для чтения данных в конкретных форматах.

 

 

Класс TDelimitedReader является прямым потомком класса TTextReader. Если от TDelimitedReader породить новый класс, то он тоже будет потомком класса TTextReader, но уже не прямым.

 

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

 

Наследование свойств и методов имеет свои особенности. Свойство базового класса можно перекрыть (от англ. override) в производном классе, например, чтобы добавить ему новый атрибут доступа или связать с другим полем или методом.

 

Метод базового класса тоже можно перекрыть в производном классе, например чтобы изменить логику его работы.

сonstructor TDelimitedReader.Create(const FileName: string; const ADelimiter: Char = ';');

begin

inherited Create(FileName);

FDelimiter:= ADelimiter;

end;

 

Как видно из примера, в наследнике можно вызвать перекрытый метод предка, указав перед

именем метода зарезервированное слово inherited. Когда метод предка полностью совпадает

с методом потомка по формату заголовка, то можно использовать более короткую запись.

 

Destructor TTextReader.Destroy;

begin

Active:= False;

inherited; // Эквивалентно: inherited Destroy;

end;

 

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

 


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.003 сек.)