tb0389.pp 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. { %VERSION=1.1 }
  2. {$ifdef fpc}{$mode objfpc}{$endif}
  3. type
  4. tobj = class
  5. procedure proc1 (a: integer);overload;virtual;
  6. procedure proc1 (a: extended);overload;
  7. end;
  8. tobj1 = class(tobj)
  9. procedure proc1 (a: integer);overload;override;
  10. procedure proc1 (a: char);overload;
  11. end;
  12. tobj2 = class (tobj1)
  13. procedure proc1 (a: integer);override;
  14. end;
  15. procedure tobj.proc1 (a: integer);
  16. begin
  17. write('tobj.proc1(a:integer) called: ');
  18. writeln (a);
  19. end;
  20. procedure tobj.proc1 (a: extended);
  21. begin
  22. write('tobj.proc1(a:extended) called: ');
  23. writeln (a);
  24. end;
  25. procedure tobj1.proc1 (a: integer);
  26. begin
  27. write('tobj1.proc1(a:integer) called: ');
  28. writeln (a);
  29. end;
  30. procedure tobj1.proc1 (a: char);
  31. begin
  32. write('tobj1.proc1(a:char) called: ');
  33. writeln (a);
  34. end;
  35. procedure tobj2.proc1 (a: integer);
  36. begin
  37. write('tobj2.proc1(a:integer) called: ');
  38. writeln (a);
  39. end;
  40. var
  41. obj1: tobj1;
  42. obj2: tobj2;
  43. begin
  44. obj1:=tobj1.create;
  45. obj2:=tobj2.create;
  46. obj2.proc1 (100);
  47. obj2.proc1 ('a');
  48. obj2.proc1 (123.456);
  49. end.