0

如何分配给对象的超类?

例子:

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

我如何(或可以)实施barSet

4

1 回答 1

0

当搞乱基类时,你应该使用@-syntax(在这里阅读)。例如:

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

该方法barSetfoo和中的一种方法bar

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

F = foo;
F.barSet(5);

将使用参数调用barSet类中的方法。如果你定义它,该方法可以完全做其他事情,或者首先做版本中所做的事情,然后是更专业的东西(上面写为)。bar5bar'...'

现在这有帮助吗?因为我并不完全清楚你想要什么。我不明白你的意思bar(this) == b- 是orb的一个实例?你是什​​么意思?复制构造函数?那么我是否正确理解您的意思是您想用实例覆盖实例?foobarbar(this)thisb

于 2012-10-05T16:11:40.060 回答