Управляющая последовательность вызовов конструктора

MATLAB® не гарантирует последовательность, в которой конструкторы суперкласса называются при построении объекта подкласса. Однако можно управлять этим порядком путем вызова конструкторов суперкласса явным образом из конструктора подкласса.

Если вы явным образом вызываете конструктора суперкласса из самого определенного конструктора подкласса (ClassC в следующей схеме), то MATLAB вызывает самого определенного конструктора подкласса сначала. Если вы не выполняете явный вызов к конструктору суперкласса из конструктора подкласса, MATLAB выполняет неявный вызов при доступе к объекту.

Предположим, что у вас есть иерархия классов, в которых ClassC выводит от ClassB, который выводит от ClassA. Конструктор для подкласса может вызвать только прямые суперклассы. Поэтому каждый конструктор класса может вызвать прямого конструктора суперкласса:

В случаях множественного наследования конструктор подкласса может вызвать каждого конструктора суперкласса. Чтобы гарантировать, что определенная вызывающая последовательность конструктора суперкласса сопровождается, вызовите всех прямых конструкторов суперкласса явным образом из самого определенного конструктора подкласса:

Похожие темы

Была ли эта тема полезной?