分配给超类

时间:2012-10-05 15:10:13

标签: matlab matlab-class

如何分配给对象的超类?

示例:

classdef foo < bar
...
  methods
    function this = barSet(this,b)
      % Here I want to arrange that bar(this) == b
    end
  end
end

我如何(或可以)实施barSet

1 个答案:

答案 0 :(得分:0)

当搞乱基类时,你应该使用@ - 语法(阅读它here)。例如:

classdef foo < bar
...
  methods
    function this = barSet(this,b)
        %# call method in bar
        barSet@bar(this, b);
        ...
    end
  end
end

方法barSetfoobar中的一种方法。

这是Matlab扩展重载方法的方法:如果省略barSet(this,b)中的foo定义,则调用

F = foo;
F.barSet(5);

将使用参数barSet调用类bar中的方法5。如果您定义它,该方法可以完全执行其他操作,或者首先执行bar中的版本,然后执行更专业的内容(上面写为'...') 。

现在对此有何帮助?因为我并不完全清楚你想要什么。我不明白你的意思bar(this) == b - bfoobar的实例吗?你对bar(this)的意思是什么?复制构造函数?因此,我是否正确理解您是否要使用this实例覆盖b实例?