スーパークラスとサブクラスの 2 つのクラスがあります。サブクラスはスーパークラスを継承しています。
スーパークラスは、デフォルトの Matlab 関数を再定義しますdisp()
。ただし、サブクラスでこの再定義を「キャンセル」して、既定の Matlab バージョンのdisp()
. これを行う方法はありますか?
サブクラスが次の構文を介してスーパークラスのメソッドを呼び出すことができることを知っています
function result = CallTheSuperClassMethod(obj, arg1, arg2)
result = TheSuperClassMethod@TheSuperClass(obj, arg1, arg2)
end
しかし、次のような方法でMatlabのデフォルトメソッドを呼び出す方法はありますか:
function result = CallTheDefaultMethod(obj, arg1, arg2)
result = SomeMethod@DefaultClass(obj, arg1, arg2)
end
DefaultClass
ここで、それがすべての Matlab クラスの継承元のクラスであると想定しています。
これが具体的な例です。次のように定義された 2 つのクラスがあります。
classdef blah_super
properties
superprop = 'super property';
end
methods
function disp(obj)
disp('super');
end
end
end
classdef blah_sub < blah_super
properties
subprop = 'sub property';
end
end
以下は、私が取得したいくつかのコマンドの結果です。
>> a = blah_super
a =
super
>> b = blah_sub
b =
super
blah_sub
しかし、何らかの方法で ( から継承しながら)変更したいblah_super
ので、結果は次のようになります。
>> b = blah_sub
b =
blah_sub with properties:
subprop: 'sub property'
superprop: 'super property'
前もって感謝します。