Чтобы одноименные методы можно было отличить друг от друга,каждый из них должен иметь уникальный набор, параметров. В ходе шлпоянения программы при: обращении к одному, из одноименнх методов программа проверяет; тип и количество фактических параметров обращения и выбирает нужный метод
В следующем примере в классе TForm1 используются целых 4 одноименных метода close. Лишь один из них - унаследованный метод без параметра выполняет свои основные функции - закрывает окно. Три других отличаются набором параметров и выводят сообщение в заголовок окна.
Поместите на пустую форму четыре кнопки TButton и напишите такие обработчики их событий OnClick:
procedure TForm1.ButtonlClick(Sender: TObject);
begin
Close('Строка символов')
end;
procedure TFormi.Button2Click(Sender: TObject);
begin
Close(123)
end;
procedure TFormi.ButtonSClick(Sender: TObject);
begin
Close (20,300);
end;
procedure TFormi.Button4Click(Sender: TObject);
begin
Close
end;
Теперь в раздел private класса Tform1 вставьте три таких объявления методов close:
private
{ Private declarations }
procedure Close(S: String);
reintroduce;
overload;
procedure Close(I: Integer);
reintroduce;
overload;
procedure Close(I,J: Integer);
reintroduce;
overload;
|
|
И, наконец, в разделе implementation поместите описания объявленных методов:
procedure TForm1.Close(S: String);
begin
Caption:= S
end;
procedure TFormI.Close(I: Integer);
begin
Caption:= IntToStr(I)
end;
procedure TFormI.close(I,J: Integers);
begin
Caption:= IntToStr(i*j)
end;
Теперь после запуска программы три первые кнопки будут вызывать методы close класса Tform1 и менять заголовок окна, в то время как кнопка Button4 обратится к методу close родительского класса т Form и закроет окно.