Programming with MATLAB | ![]() ![]() |
単一継承
他のクラスから派生して、継承しているクラスにそれ自身の新しい要素を加える クラスは、単一継承を使います。継承は子クラスに属しているオブジェクトが、 追加フィールドのように親クラスと同じフィールドをもたせます。そのために、 親クラスと関連したメソッドは、子クラスに属するオブジェクト上で働くことが できます。しかし、子クラスに関連したメソッドは、親クラスに属しているオブ ジェクト上で機能しません。子クラスから直接に親のフィールドにアクセスする ことはできません。親に対して定義されたアクセスメソッドを使わなければなり ません。
他の挙動を継承しているクラスに対するコンストラクタ関数は、2つの特別な特性をもっています。
class
関数に対して使う構文は、子クラスと親クラスの2つを反映するためにわずかに異なります。関数class
を使って、単一継承関係を作る一般的な構文は、つぎのものです。
child_obj = class(child_obj,'child_class',parent_obj);
単一継承は、複数の世代にまたがることも可能です。親クラスが、それ自身継承クラスの場合、子オブジェクトは二世代上(grandparent)のクラスから自動的に継承します。
クラスプロパティとメソッドの可視化
親クラスは、子のプロパティ、または、メソッドに関する知識をもつ必要はありません。子クラスは、親のプロパティに直接アクセスできませんが、親のアクセスメ
ソッド(たとえば、get
またはsubsref
メソッド)を使って、親のプロパティにア
クセスします。子クラスメソッドから、このアクセスは、子構造体内の親のフィー
ルドを通して行われます。たとえば、コンストラクタは、子オブジェクトc
を作
成するとき、つぎのようにします。
c = class(c,'child_class_name
',parent_object);
MATLABは、親オブジェクトを含むオブジェクトの構造体内にc.parent_class_name
フィールドを自動的に作成します。ユーザは、親のdisplayメソッドを呼び、子のdisplayメソッドの中にステートメントを作成します。
display(c.parent_class_name
)
単一継承を使った例題については、"株式クラスの設計 "を参照してください。
![]() |
他のクラスの構築 | 多重継承 | ![]() |