exponenta event banner

Приоритет класса

Использование приоритета класса

MATLAB ® использует приоритет класса, чтобы определить, какой метод следует вызвать, если несколько классов имеют один и тот же метод. Можно указать относительный приоритет определяемых пользователем классов с помощью классаInferiorClasses атрибут.

Материал, представленный в этой теме, основывается на понимании следующей информации:

Почему классы отмечаются как неполноценные

Когда несколько классов определяют методы с одинаковым именем или когда классы перегружают функции, MATLAB определяет метод или функцию для вызова на основе доминирующего аргумента. Вот как MATLAB определяет доминирующий аргумент:

  1. Определите доминирующий аргумент на основе класса аргументов.

  2. При наличии доминирующего аргумента вызовите метод доминирующего класса.

  3. Если аргументы имеют одинаковый приоритет, используйте крайний левый аргумент в качестве доминирующего аргумента.

  4. Если класс доминирующего аргумента не определяет метод с именем вызываемой функции, вызовите первую функцию на пути с таким именем.

Атрибут «Инфоклассы»

Укажите относительный приоритет определяемых пользователем классов с помощью класса InferiorClasses атрибут. Чтобы указать классы, которые уступают определяемому классу, назначьте массив ячеек класса meta.class объектов к этому атрибуту.

Например, следующее: classdef заявляет, что MyClass доминирует над ClassName1 и ClassName2.

classdef (InferiorClasses = {?ClassName1,?ClassName2}) MyClass
   ...
end

? оператор в сочетании с именем класса создает meta.class объект. Посмотрите metaclass.

Следующие классы MATLAB всегда уступают классам, определенным с помощью classdef и не может использоваться в этом списке.

double, single, int64, uint64, int32, uint32, int16, uint16, int8, uint8, char, string, logical, cell, struct, и function_handle.

Доминирующий класс

MATLAB использует доминирование класса при вычислении выражений с участием объектов нескольких классов. Доминирующий класс определяет:

  • Метод класса для вызова, если несколько классов определяют методы с одинаковыми именами.

  • Класс массивов, которые формируются путем объединения объектов различных классов, предполагая, что MATLAB может преобразовывать нижестоящие объекты в доминирующий класс.

Наследование атрибутов отсутствует

Подклассы не наследуют суперкласс InferiorClasses атрибут. Только классы, указанные в подклассе InferiorClasses атрибуты уступают объектам подкласса.

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