Perhatikan contoh program berikut dan hasilnya jika dijalankan.
program Turunan2;
{$APPTYPE CONSOLE}
type
TPoint=record
X,Y:integer;
end;
TGambar=class
Posisi:TPoint;
procedure GambarObyek;
end;
TLingkaran=class(TGambar)
Jari2:integer;
procedure GambarObyek;
end;
TKotak=class(TGambar)
Panjang:integer;
Lebar:integer;
procedure GambarObyek;
end;
procedure TGambar.GambarObyek;
begin
Writeln('Menggambar obyek');
end;
procedure TLingkaran.GambarObyek;
begin
Writeln('Menggambar lingkaran');
end;
procedure TKotak.GambarObyek;
begin
Writeln('Menggambar kotak');
end;
var
Gambar:TGambar;
Lingkaran:TLingkaran;
Kotak:TKotak;
begin
//membuat obyek
Gambar:=TGambar.Create;
Lingkaran:=TLingkaran.Create;
Kotak:=TKotak.Create;
//memanggil method
Gambar.GambarObyek;
Lingkaran.GambarObyek;
Kotak.GambarObyek;
//membuang obyek
Gambar.Free;
Lingkaran.Free;
Kotak.Free;
Writeln('Tekan Enter');
Readln;
end.Jika program dijalankan hasilnya akan tampak sebagai berikut:
Menggambar obyek Menggambar lingkaran Menggambar kotak Tekan Enter
Dari contoh di atas terlihat bahwa method GambarObject antara TGambar, TLingkaran, dan TKotak memiliki aksi yang berbeda-beda.


