Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- TCustomUser = class
- protected
- fRealName: string;
- public
- MegaInfo: TMegaUserInfo;
- function GetRealName: string;
- constructor Create(username: string);
- destructor Destroy; override;
- (* метод Destroy здесь перекрывает одноименный метод родительского
- класса, поэтому использована инструкция override *)
- end;
- TUser = class (TCustomUser) // наследование (Объявление Tuser как предок TCustomUser)
- private
- fLogin: string;
- fPassword: string;
- procedure setPassword(newpass: string);
- published
- property Login: string read fLogin write fLogin;
- property Password: string read fPassword write setPassword;
- constructor Create(username, userlogin: string);
- end;
- function TCustomUser.GetRealName: string;
- begin
- result:=fRealName;
- writeln(' >> Calls TCustomUser.GetRealName');
- end;
- constructor TCustomUser.Create(username: string);
- begin
- inherited Create;
- MegaInfo:=TMegaUserInfo.Create;
- fRealName:=username;
- writeln(' >> Calls TCustomUser.Create with '+username);
- end;
- destructor TCustomUser.Destroy;
- begin
- MegaInfo.Free;
- inherited Destroy;
- writeln(' >> Calls TCustomUser.Destroy');
- end;
- constructor TUser.Create(username, userlogin: string);
- begin
- inherited Create(username); // Полиморфизм (ключевое слово inherited отсылает нас к
- fLogin:=userlogin; // предку (для Tuser это TCustomUser)
- fPassword:='password';
- writeln(' >> Calls TUser.Create with '+username+' and '+userlogin);
- end;
- procedure TUser.setPassword(newpass: string);
- begin
- if Length(newpass)>3 then fPassword:=newpass
- else writeln('Error! Password is too short!');
- writeln(' >> Calls TUser.setPassword with '+newpass);
- end;
- var
- User: TUser;
- begin
- writeln('Press ENTER to create a new TUser insance');
- readln;
- User:=TUser.Create('Ivan Ivanovich','Vano');
- writeln(#10+'Press ENTER to access to parent class method');
- readln;
- writeln(User.GetRealName);
- writeln(#10+'Press ENTER to access to TAddress record');
- readln;
- with User.MegaInfo.Address do begin
- PostIndex:=119071;
- City:='Moscow';
- writeln(PostIndex);
- writeln(User.MegaInfo.Address.City);
- end;
- writeln(#10+'Press ENTER to destroy TUser instance');
- readln;
- User.Destroy;
- writeln(#10+'Press ENTER to exit');
- readln;
- end.
Add Comment
Please, Sign In to add comment