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 に答える