Подклассы могут заменить методы суперкласса поддержать большую специализацию, заданную подклассом. Из-за отношения, что объект подкласса является объектом суперкласса, часто полезно вызвать версию суперкласса метода прежде, чем выполнить специализированный код подкласса.
Методы подклассов могут вызвать методы суперкласса, если оба метода имеют то же имя. От подкласса сошлитесь на имя метода и имя суперкласса с символом @
.
Эта схема иллюстрирует, как вызвать 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
См. Конструкторов подкласса для получения дополнительной информации.