コンストラクターを呼び出す順序の制御
MATLAB® は、サブクラス オブジェクトをコンストラクトする際にスーパークラス コンストラクターが呼び出される順序を保証しません。ただし、サブクラス コンストラクターからスーパークラス コンストラクターを明示的に呼び出すことにより、この順序を制御することができます。
最も特定的なサブクラスのコンストラクター (下図の ClassC
) からスーパークラスのコンストラクターを明示的に呼び出すと、MATLAB は最も特定的なサブクラスのコンストラクターを最初に呼び出します。サブクラスのコンストラクターからスーパークラスのコンストラクターを明示的には呼び出さない場合、MATLAB は、オブジェクトにアクセスする際に暗黙的な呼び出しを行います。
ClassA
から ClassB
が派生し、それから続けて ClassC
が派生するクラス階層を仮定します。サブクラスのコンストラクターは直接スーパークラスのみ呼び出すことができます。したがって、各クラスのコンストラクターは直接スーパークラスのコンストラクターを呼び出すことができます。
多重継承の場合、サブクラスのコンストラクターは各スーパークラスのコンストラクターを呼び出すことができます。特定のスーパークラス コンストラクターの呼び出し順序が必ず守られるように、最も特定的なサブクラスのコンストラクターから、直接のスーパークラスのコンストラクターをすべて明示的に呼び出します。