1 unit getterexample1; 2 3 {$mode objfpc}{$H+} 4 5 interface 6 7 uses 8 Classes, SysUtils; 9 10 type 11 12 { TOldest } 13 14 TOldest = class 15 private 16 FBar: integer; GetBarnull17 function GetBar: integer; virtual; 18 public 19 property Bar: integer read GetBar; 20 end; 21 22 { TOlder } 23 24 TOlder = class(TOldest) 25 private GetBarnull26 function GetBar: integer; override; 27 public 28 procedure DoSomething; GetOldestnull29 function GetOldest(Older: TOlder): TOldest; 30 end; 31 32 implementation 33 34 { TOldest } 35 GetBarnull36function TOldest.GetBar: integer; 37 begin 38 Result:=FBar; 39 end; 40 41 { TOlder } 42 GetBarnull43function TOlder.GetBar: integer; 44 begin 45 Result:=FBar; 46 end; 47 48 procedure TOlder.DoSomething; 49 var 50 Older: TOlder; 51 begin 52 Older:=TOlder.Create; 53 with TOlder(Older) do 54 writeln(Bar); 55 with Older.GetOldest(Self) do 56 writeln(Bar); 57 end; 58 GetOldestnull59function TOlder.GetOldest(Older: TOlder): TOldest; 60 begin 61 Result:=Older; 62 end; 63 64 end. 65 66