Модератор: Модераторы
program Project1;
{$mode objfpc}{$H+}
Type
{ TSuperClass }
TSuperClass = Class
Private
Protected
fTarget: Integer;
Procedure SetTarget(aValue: Integer); Virtual;
Public
Property Target: Integer Read fTarget Write SetTarget;
End;
Type
{ TDerivedClass }
TDerivedClass = Class(TSuperClass)
Private
fDepended: Integer;
Protected
Procedure SetTarget(aValue: Integer); Override;
Public
Property Dependent: Integer Read fDepended;
End;
{ TDerivedClass }
Procedure TDerivedClass.SetTarget(aValue: Integer);
Begin
ftDepended := aValue * 2;
Inherited SetTarget(aValue);
End;
{ TSuperClass }
Procedure TSuperClass.SetTarget(aValue: Integer);
Begin
If fTarget=aValue Then Exit;
fTarget:=aValue;
End;
Var
aDerived: TDerivedClass;
begin
aDerived := TDerivedClass.Create;
aDerived.Target := 2;
WriteLn(aDerived.NewProperty); // <- 4
end.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 221