pascalabcnet/TestSuite/reintroduce1.pas
Бондарев Иван 7dbf6197cb fix #2177
2020-01-12 12:16:43 +01:00

43 lines
801 B
ObjectPascal

type
t1 = class
property p1: integer read 3; virtual;
property p2: integer read 3; virtual;
function f1: integer; virtual;
begin
Result := 3;
end;
function f2: integer; virtual;
begin
Result := 3;
end;
end;
t2 = class(t1)
property p1: integer read 5; reintroduce;
property p2: integer read 5; override;
function f1: integer; reintroduce; virtual;
begin
Result := 5;
end;
function f2: integer; override;
begin
Result := 5;
end;
end;
t3 = class(t2)
function f2: integer; override;
begin
Result := 5;
end;
end;
begin
var o: t1 := new t2;
assert(o.p1 = 3);
assert(o.p2 = 5);
assert(o.f1 = 3);
assert(o.f2 = 5);
var o2: t2 := new t3;
assert(o2.f1 = 5);
end.