Разное
Облака / Clouds
The bast cloud service
Get 20 GB free!!!
Support WebDav.
Show more >>
time-tested cloud storage
Support WebDav.
Последние книги
Самое популярное
Все бесплатно
Все ссылки на файлы, расположенные на страницах сайта, добавлены пользователями и доступны для бесплатного скачивания. За содержание этих файлов администрация сайта ответственности не несет.
Навигация
Вопросы
Упаковать *.mdb-файл
Категория: Базы данных
Категория: Базы данных
Как удалить не пустой каталог
Категория: Файловая система
Категория: Файловая система
Компоненты CoolBar и ControlBar
Категория: Компоненты
Категория: Компоненты
Как получить список устройств, подключённых к компьютеру
Категория: Файловая система
Категория: Файловая система
Заполнение компонента TTreeView данными из TDataSet
Категория: Базы данных
Категория: Базы данных
Компонент SpeedButton
Категория: Компоненты
Категория: Компоненты
Загрузка файлов в THTMLViewer и TFrameBrowser
Категория: Интернет и Сети
Категория: Интернет и Сети
Округление в меньшую сторону
Категория: Математика
Категория: Математика
Изменить структуру ABS (AbsoluteDB)
Категория: Базы данных
Категория: Базы данных
Создание кнопки на панели в IE
Категория: Интернет и Сети
Категория: Интернет и Сети
Delphi - Справочник: Override
Override
|
Function|Procedure declaration; Override; |
Деректива (Unit )
|
Определяет метод, который заменяет виртуальный родительский метод класса
|
Описание:
|
Директива Override определяет метод класса как замена так же названного метода в родительском классе. Например, Вы могли бы хотеть отменить (заменить) операцию конструктора, чтобы принять во внимание изменения класса, введенные вашим классом. Вы можете только отменить классы определенные как виртуальные (virtual) или динамический (dynamic) (последний вне области основ Delphi). Только те методы, которые могут быть заметно изменены полученным классом, обычно позволяют сделать так. Если метод отмечен как абстрактный (abstract), так же как и виртуальный (virtual), тогда Вы должны отменить его и осуществить его чтобы он был используемым пользователем вашего класса. |
Пример кода: Замена абстрактных методов
|
// Полный код Модуля. // ----------------------------------------------------------- // Вы должны поместить этот код в модуль с именем Unit1 и с формой // названную Form1, которая имеет событие OnCreate названное FormCreate. unit Unit1; interface uses Forms, Dialogs, Classes, Controls, StdCtrls, SysUtils; type // определение базового класса TPolygon: // Этот класс - треугольник если 3 стороны, квадрат если 4 стороны... TPolygon = class private sideCount : Integer; // Сколько сторон? sideLength : Integer; // Какой длины каждая сторона? shapeArea : Double; // Область многоугольника protected procedure setArea; Virtual; Abstract; published property count : Integer read sideCount; property length : Integer read sideLength; property area : Double read shapeArea; constructor Create(sides, length : Integer); end; // Определение потомков треугольника и квадрата TTriangle = class(TPolygon) protected procedure setArea; Override; // Замена абстрактного метода end; TSquare = class(TPolygon) protected procedure setArea; Override; // Замена абстрактного метода end; // Определение класса формы используемой этим модулем TForm1 = class(TForm) procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} // Вложение определений формы // Создание объекта TPolygon constructor TPolygon.Create(sides, length : Integer); begin // Сохранение числа и длины сторон sideCount := sides; sideLength := length; // Установка области используя метод setArea: // Этот вызов будет удовлетворен только подклассом setArea; end; // Выполнение родительского для треугольника абстрактного метода setArea procedure TTriangle.setArea; begin // Вычисление и сохранение площади треугольника shapeArea := (sideLength * sideLength) / 2; end; // Выполнение родительского для квадрата абстрактного метода setArea procedure TSquare.setArea; begin // Вычисление и сохранение площади квадрата shapeArea := sideLength * sideLength; end; // Основная линия кода procedure TForm1.FormCreate(Sender: TObject); var triangle : TTriangle; square : TSquare; begin // Создание треугольника и квадрата triangle := TTriangle.Create(3, 10); square := TSquare.Create(4, 10); // Показ значений площади наших многоугольников: ShowMessageFmt('Площадь тругольника = %f',[triangle.area]); ShowMessageFmt('Площадь квадрата = %f',[square.area]); end; end.
Результат:
|
Площадь тругольника = 50.0 Площадь квадрата = 100.0 |