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