exponenta event banner

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

Связь суперкласса с подклассом

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

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

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

На этой схеме показан вызов 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 

Дополнительные сведения см. в разделе Конструкторы подкласса.

Связанные темы