我有两个类,一个超类和一个子类。子类继承自超类。
超类重新定义了默认的 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 类继承的类。
这是一个具体的例子。我有两个类,定义如下:
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'
提前致谢。