我正在尝试在MATLAB中执行以下操作:
定义一个属性为a
的超类:
classdef (Abstract) superClass
properties (Abstract = true)
a;
end
end
定义一个继承自超类的子类,并为a
实现一个get函数
classdef subClass < superClass
methods
function val = get.a(obj)
val = obj.a;
end
end
properties
a;
end
end
我得到的是:
使用subClass时出错 错误:文件:subClass.m行:3列:28 无法在类'subClass'中为属性'a'指定get函数,因为该属性不是由该类定义的。
根据文档,它认为可以在抽象属性上定义get / set。
答案 0 :(得分:0)
有趣的是,我通过简单地定义properties
块之前子类中的methods
块来实现它(这里的顺序似乎很重要):
classdef subClass < superClass
properties
a;
end
methods
function val = get.a(obj)
val = obj.a;
end
end
end
我认为这是MATLAB解析器的问题,也许您应该提交bug report。