Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

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

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

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

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

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

関連するトピック