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

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

У вас есть код:
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;

  AmurTiger=class(Tiger)
  end;

  Lion=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;
  AmurTigerItem: AmurTiger;
  LionItem: Lion;

begin
  CatItem := Cat.create('Мурка');
  CatItem.sayHello();

  TigerItem := Tiger.create('Шархан');
  TigerItem.sayHello();

  AmurTigerItem := AmurTiger.create('Амур');
  AmurTigerItem.sayHello();

  LionItem := Lion.create('Шрам');
  LionItem.sayHello();
  readln();
end.