サブクラスの構文
サブクラス定義の構文
他のクラスのサブクラスとしてクラスを定義するには、以下のように classdef 行の < の後にスーパークラスを追加します。
classdef ClassName < SuperClass
複数のクラスから継承する場合は、以下のように & を使用してスーパークラスの組み合わせを示します。
classdef ClassName < SuperClass1 & SuperClass2
複数のスーパークラスからの派生の詳細については、クラス メンバーの互換性を参照してください。
クラスの属性
サブクラスは、スーパークラスの属性を継承しません。
double のサブクラス化
double から派生するクラスを定義し、値を正の数値に制限するとします。PositiveDouble クラスは、以下のようになります。
既定のコンストラクターをサポートする (入力引数なし)。入力引数なしでコンストラクターを呼び出す条件を参照してください。
mustBePositiveを使用して入力を正の値に制限する入力値を指定してスーパークラス コンストラクターを呼び出し、double の数値を作成する
classdef PositiveDouble < double methods function obj = PositiveDouble(data) if nargin == 0 data = 1; else mustBePositive(data) end obj = obj@double(data); end end end
1 行 5 列の数値配列を使用して PositiveDouble クラスのオブジェクトを作成します。
a = PositiveDouble(1:5);
任意の double のようにこのクラスのオブジェクトに対して操作を実行できます。
sum(a)
ans =
15PositiveDouble クラスのオブジェクトは正の値でなければなりません。
a = PositiveDouble(0:5);
Error using mustBePositive (line 19)
Value must be positive.
Error in PositiveDouble (line 7)
mustBePositive(data)