【发布时间】:2019-03-12 11:11:55
【问题描述】:
我正在寻找一个 MATLAB 解决方案,其中一个嵌套子类可以访问另一个嵌套子类的属性。
在下面的例子中,超类有两个属性,每个属性都被初始化为两个不同的子类:
classdef superclass
properties
prop1
prop2
end
methods
function obj = superclass()
obj.prop1 = subclass1;
obj.prop2 = subclass2;
end
end
end
第一个子类具有属性 a:
classdef subclass1
properties
a
end
end
第二个子类具有属性 b 和一个使用子类 1 的属性 a 的方法 calcSomething:
classdef subclass2
properties
b
end
methods
function result = calcSomething(obj)
result = obj.b * superclass.prop1.a;
end
end
end
如何表达 superclass.prop1.a 以从 subclass2 中正确获取此属性?
谢谢! :)
PS 我不确定我对 superclass 和 subclass 这两个词的使用是否完全正确,因为我没有说明
subclass < superclass
也许母子的概念会更方便..?!
【问题讨论】:
-
prop1不知道superclass也不知道包含它的那个类的对象。你可以明确地给它这个知识,但这会很奇怪。让这个方法成为superclass的一部分会更合乎逻辑,这是唯一知道这两个属性的类。 -
感谢@CrisLuengo 的快速回答!是的,你可能是对的。
superclass知道这两个属性,因此方法calcSomething应该位于超类中...
标签: matlab oop nested children class-properties