如何分配给对象的超类?
示例:
classdef foo < bar
...
methods
function this = barSet(this,b)
% Here I want to arrange that bar(this) == b
end
end
end
我如何(或可以)实施barSet
?
答案 0 :(得分:0)
当搞乱基类时,你应该使用@
- 语法(阅读它here)。例如:
classdef foo < bar
...
methods
function this = barSet(this,b)
%# call method in bar
barSet@bar(this, b);
...
end
end
end
方法barSet
是foo
和bar
中的一种方法。
这是Matlab扩展重载方法的方法:如果省略barSet(this,b)
中的foo
定义,则调用
F = foo;
F.barSet(5);
将使用参数barSet
调用类bar
中的方法5
。如果您定义它,该方法可以完全执行其他操作,或者首先执行bar
中的版本,然后执行更专业的内容(上面写为'...'
) 。
现在对此有何帮助?因为我并不完全清楚你想要什么。我不明白你的意思bar(this) == b
- b
是foo
或bar
的实例吗?你对bar(this)
的意思是什么?复制构造函数?因此,我是否正确理解您是否要使用this
实例覆盖b
实例?