我有一个简单的类结构:
classdef super < hgsetget
properties(Constant = true, Access = private)
PROP1 = 1;
PROP2 = {2 [3 4] [5 6]};
end
methods
function self = super()
// Constructor code here
// ...
end
end
end
然后由子类继承,如此。
classdef sub < super
properties
PROP3 = 7;
end
methods
function self = sub()
// Subclass constructor here
// ...
self = self@super();
test = self.PROP1; // I don't appear to have access to PROP1 from Super
end
end
end
我的问题是,当我尝试访问超级的属性PROP1
或PROP2
时,我似乎无法访问:
类sub没有合适的方法,属性或字段PROP1。
有没有办法在Matlab中访问super的属性?
答案 0 :(得分:7)
在超类super
中将属性属性设置为
properties(Constant = true, Access = protected)
从the documentation开始,访问属性确定哪些代码可以访问这些属性:
答案 1 :(得分:2)
您将属性定义为private
,这些属性不会被继承。
改为使用Access = protected
。