mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-05-05 15:52:41 +02:00
66 lines
855 B
ObjectPascal
66 lines
855 B
ObjectPascal
unit getterexample1;
|
|
|
|
{$mode objfpc}{$H+}
|
|
|
|
interface
|
|
|
|
uses
|
|
Classes, SysUtils;
|
|
|
|
type
|
|
|
|
{ TOldest }
|
|
|
|
TOldest = class
|
|
private
|
|
FBar: integer;
|
|
function GetBar: integer; virtual;
|
|
public
|
|
property Bar: integer read GetBar;
|
|
end;
|
|
|
|
{ TOlder }
|
|
|
|
TOlder = class(TOldest)
|
|
private
|
|
function GetBar: integer; override;
|
|
public
|
|
procedure DoSomething;
|
|
function GetOldest(Older: TOlder): TOldest;
|
|
end;
|
|
|
|
implementation
|
|
|
|
{ TOldest }
|
|
|
|
function TOldest.GetBar: integer;
|
|
begin
|
|
Result:=FBar;
|
|
end;
|
|
|
|
{ TOlder }
|
|
|
|
function TOlder.GetBar: integer;
|
|
begin
|
|
Result:=FBar;
|
|
end;
|
|
|
|
procedure TOlder.DoSomething;
|
|
var
|
|
Older: TOlder;
|
|
begin
|
|
Older:=TOlder.Create;
|
|
with TOlder(Older) do
|
|
writeln(Bar);
|
|
with Older.GetOldest(Self) do
|
|
writeln(Bar);
|
|
end;
|
|
|
|
function TOlder.GetOldest(Older: TOlder): TOldest;
|
|
begin
|
|
Result:=Older;
|
|
end;
|
|
|
|
end.
|
|
|