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