Примечание. Чтобы одноименные методы можно было отличить друг от друга,каждый из них должен иметь уникальный набор

Чтобы одноименные методы можно было отличить друг от друга,каждый из них должен иметь уникальный набор, параметров. В ходе шлпоянения программы при: обращении к одному, из одноименнх методов программа проверяет; тип и количество фактических параметров обращения и выбирает нужный метод


В следующем примере в классе 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 и закроет окно.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: