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

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

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

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

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

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

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

Похожие темы