Переопределение методов

  • docx
  • 11.11.2021
Публикация на сайте для учителей

Публикация педагогических разработок

Бесплатное участие. Свидетельство автора сразу.
Мгновенные 10 документов в портфолио.

Иконка файла материала Л2-00388.docx

Операторы PASCAL ABC

Переопределение методов

Метод базового класса может быть переопределен (замещен) в подклассах. Если при этом требуется вызвать метод базового класса, то используется служебное слово inherited (англ.- унаследованный). Например:

type
  Person=class
    name: string;
    age: integer;
    constructor Create(nm: string; ag: integer);
    begin
      name:=nm; age:=ag;
    end;
    procedure Print;
    begin
      writeln('
Имя: ',name,'  Возраст: ',age);
    end;
  end;
  Student=class(Person)
    course, group: integer;
    constructor Create(nm: string; ag,c,gr: integer);
    begin
      inherited Create(nm,ag);
      course:=c; group:=gr;
      name:=nm; age:=ag;
    end;
    procedure Print;
    begin
      inherited Print;
      writeln('
Курс: ',course,'  Группа: ',group);
    end;
  end;

Здесь метод Print производного класса Student вызывает вначале метод Print, унаследованный от базового класса Person, с помощью конструкции inherited Print. Аналогично конструктор Create класса Student вызывает вначале конструктор Create базового класса Person, также используя служебное слово inherited. Следует обратить внимание, что конструктор базового класса вызывается в этом случае как процедура, а не как функция, при этом создания нового объекта не происходит.