Вызов методов суперкласса для объектов подкласса

Отношение суперкласса к подклассу

Подклассы могут переопределять суперклассы для поддержки большей специализации, заданной подклассом. Из-за связи, что объект подкласса является объектом суперкласса, часто полезно вызвать версию суперкласса метода перед выполнением специализированного кода подкласса.

Как вызвать суперкласс методы

Методы подкласса могут вызывать методы суперкласса, если оба метода имеют одно и то же имя. Из подкласса ссылка на имя метода и суперкласс со @ символ.

Эта схема иллюстрирует, как вызвать superMethod определяется MySuperClass.

Например, подкласс может вызвать суперкласс disp способ реализации отображения части суперкласса объекта. Затем подкласс добавляет код, чтобы отобразить часть подкласса объекта:

classdef MySub < MySuperClass 
   methods
      function disp(obj)
         disp@MySuperClass(obj)
            ...
      end 
   end 
end 

Как вызвать конструктор суперкласса

Если вы создаете объект подкласса, MATLAB® вызывает конструктор суперкласса, чтобы инициализировать часть суперкласса объекта подкласса. По умолчанию MATLAB вызывает конструктор суперкласса без аргументов. Если необходимо вызвать конструктор суперкласса с определенными аргументами, явным образом вызовите конструктор суперкласса из конструктора подкласса. Вызов конструктора суперкласса должен поступить перед любыми другими ссылками на объект.

Синтаксис вызова конструктора суперкласса использует @ символ:

В следующем классе MySub объект инициализируется MySuperClass конструктор. Конструктор суперкласса создает MySuperClass часть объекта, используя указанные аргументы.

classdef MySub < MySuperClass
   methods
      function obj = MySub(arg1,arg2,...)
         obj = obj@MySuperClass(SuperClassArguments);
            ...
      end 
   end 
end 

Для получения дополнительной информации см. раздел «Конструкторы подклассов».

Похожие темы