Читайте также:
|
|
Подобно обычным процедурам и функциям, методы могут быть перегружены таким образом, чтобы класс содержал несколько методов с одним именем, но с различными списками параметров.
Перегруженные методы должны быть объявлены с указанием директивы overload. Вот пример объявления класса с перегруженными методами.
Type
TSomeClass = class
procedure AMethod(I: Integer); overload;
procedure AMethod(S: string); overload;
procedure AMethod(D: Double); overload;
end;
Дублирование имен методов
Иногда может понадобиться к одному из классов добавить метод, замещающий метод с тем же именем, но принадлежащий предку этого класса. В данном случае требуется не переопределить исходный метод, а полностью его заменить. Если просто добавить такой метод в новый класс, то компилятор выдаст предупреждение о том, что новый метод скрывает метод базового класса с тем же именем. Для устранения этой ошибки в новом методе укажите директиву reintroduce.
type
T1 = class(TObject)
procedure Test(I: Integer); overload; virtual;
end;
T2 = class(Tl)
procedure Test(S: string); reintroduce; overload;
end;
В следующем коде будут вызываться различные методы.
SomeObject:= Т2.Create;
SomeObject.Test('Hello!'); // вызывается T2.Test
SomeObject.Test(7); // вызывается Tl.Test
Дата добавления: 2015-07-25; просмотров: 84 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Переопределение методов | | | Свойства |