Классы / Наследование

type
  IShape = interface
    function GetArea: Integer;
  end;

  TSquare = class(TInterfacedObjectIShape)
  public
    SideLength: Integer;
    constructor Create(ASideLength: Integer);
    function GetArea: Integer;
  end;

constructor TSquare.Create(
  ASideLength: Integer);
begin
  SideLength := ASideLength;
end;

function TSquare.GetAreaInteger;
begin
  Result := SideLength * SideLength;
end;

var
  Square: IShape;
begin
  Square := TSquare.Create(5);

  WriteLn('area is ', Square.GetArea);
  //area is 25
end.