4

我想在这样的抽象类中定义一个带有属性的接口

classdef A
    properties (Abstract = true)
        Valid;
    end
end

像这样实现这个接口

classdef B < A
    properties (Dependent = true)
        Valid;
    end
    methods
        function v = get.Valid(obj)
            v = 1;
        end
    end
end

但是当我尝试制作 BI 的实例时,会出现以下错误

>> c = B()
??? Error using ==> B
The property 'Valid' restriction defined in class 'B' must match the property definition in base class 'B'.

谁能告诉我我做错了什么?

4

1 回答 1

1

尝试Dependent在基类中设置属性属性:

classdef A
    properties (Abstract = true, Dependent = true)
        Valid;
    end
end

根据文档

具体的子类必须重新定义抽象属性而不将 Abstract 属性设置为 true

我理解这一点的方式,子类属性属性必须匹配基类(没有Abstract属性)

于 2012-08-07T20:33:34.437 回答