Урок 25 Задача 3

Урок 25 Задача 3:

У вас есть код:

type
  Cat = class  // родительский класс
  public
    name: string;
    procedure sayHello();
    constructor create(nameValue: string);
  end;
  
  Tiger = class(Cat) // класс-потомок
  end;
  
constructor Cat.create(nameValue: string);
begin
 self.name := nameValue;
end;
  
procedure Cat.sayHello();
begin
 writeln('Привет, я '  + self.name + '!');
end;
  
var
  CatItem: Cat;
  TigerItem: Tiger;
  
begin
  CatItem := Cat.create('Мурка');
  CatItem.sayHello();
  
  TigerItem := Tiger.create('Шархан');
  TigerItem.sayHello();
end.

-- добавим в эту систему еще две сущности: лев (Lion) и Амурский тирг (AmurTiger), реализуйте для них класса (унаследовавшись от от тех объектов уже имеющихся наиболее близких для них классов, причем у каждого из новых классов должен быть свой родитель из двух имеющихся). Создайте этим новым классам экзепляры - и пусть они поздороваются)

type
  Cat = class  // родительский класс
  public
    name: string;
    procedure sayHello();
    constructor create(nameValue: string);
  end;

  Tiger = class(Cat) // класс-потомок
  end;

  Lion = class(Cat)  // класс-потомок
  end;

  AmurTiger = class(Tiger) // класс-потомок от класса-потомка
  end;

constructor Cat.create(nameValue: string);
begin
 self.name := nameValue;
end;

procedure Cat.sayHello();
begin
  writeln('Privet, ya '  + self.name + '!');
end;

var
  CatItem: Cat;
  TigerItem: Tiger;
  LionItem: Lion;
  AmurTigerItem: AmurTiger;

begin
  CatItem := Cat.create('Murka');
  CatItem.sayHello();

  TigerItem := Tiger.create('SHarhan');
  TigerItem.sayHello();

  LionItem := Lion.create('Lev');
  LionItem.sayHello();

  AmurTigerItem := AmurTiger.create('AmurskijSHarhan');
  AmurTigerItem.sayHello();

  readln();
end.
vedro-compota's picture

засчитано

_____________
матфак вгу и остальная классика =)