Main Content

コンストラクターを呼び出す順序の制御

MATLAB® は、サブクラス オブジェクトをコンストラクトする際にスーパークラス コンストラクターが呼び出される順序を保証しません。ただし、サブクラス コンストラクターからスーパークラス コンストラクターを明示的に呼び出すことにより、この順序を制御することができます。

最も特定的なサブクラスのコンストラクター (下図の ClassC) からスーパークラスのコンストラクターを明示的に呼び出すと、MATLAB は最も特定的なサブクラスのコンストラクターを最初に呼び出します。サブクラスのコンストラクターからスーパークラスのコンストラクターを明示的には呼び出さない場合、MATLAB は、オブジェクトにアクセスする際に暗黙的な呼び出しを行います。

ClassA から ClassB が派生し、それから続けて ClassC が派生するクラス階層を仮定します。サブクラスのコンストラクターは直接スーパークラスのみ呼び出すことができます。したがって、各クラスのコンストラクターは直接スーパークラスのコンストラクターを呼び出すことができます。

Explicit calls to superclass constructors

多重継承の場合、サブクラスのコンストラクターは各スーパークラスのコンストラクターを呼び出すことができます。特定のスーパークラス コンストラクターの呼び出し順序が必ず守られるように、最も特定的なサブクラスのコンストラクターから、直接のスーパークラスのコンストラクターをすべて明示的に呼び出します。

Explicit calls to superclass constructors with multiple inheritance

関連するトピック