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

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

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

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

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

Похожие темы