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

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

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

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

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

Эта схема иллюстрирует, как вызвать 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 

См. Конструкторов подкласса для получения дополнительной информации.

Похожие темы