pascalabcnet/TestSuite/property6.pas

30 lines
663 B
ObjectPascal
Raw Permalink Normal View History

2018-08-10 13:21:09 +03:00
type
TBaseClass = abstract class
property p1: byte read write; abstract;
2018-08-10 15:22:52 +03:00
property p2: byte read; abstract;
2018-08-10 13:21:09 +03:00
end;
TClass = class(TBaseClass)
b: byte;
property p1: byte read b write b; override;
2018-08-10 15:22:52 +03:00
property p2: byte read b; override;
2018-08-10 13:21:09 +03:00
end;
TClass2 = class(TBaseClass)
b: byte;
function getb := b;
procedure setb(value: byte) := b := value;
property p1: byte read getb write setb; override;
2018-08-10 15:22:52 +03:00
property p2: byte read getb; override;
2018-08-10 13:21:09 +03:00
end;
begin
var o: TBaseClass := new TClass;
o.p1 := 2;
assert(o.p1 = 2);
2018-08-10 15:22:52 +03:00
assert(o.p2 = 2);
2018-08-10 13:21:09 +03:00
o := new TClass2;
o.p1 := 2;
assert(o.p1 = 2);
2018-08-10 15:22:52 +03:00
assert(o.p2 = 2);
2018-08-10 13:21:09 +03:00
end.