嵌套类访问其他嵌套类的属性

时间:2018-10-07 17:34:43

标签: matlab oop nested children class-properties

我正在寻找一种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和方法calcSomething,该方法使用子类1的属性a:

 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

也许母子的概念会更方便..?!

1 个答案:

答案 0 :(得分:1)

Soo,遵循superclass的主要结构(不会改变),方法calcSomething现在位于superclass内部:

classdef superclass
   properties
      prop1 = subclass1
      prop2 = subclass2
   end

   methods
      function result = calcSomething(obj)
         result = obj.prop1.a * obj.prop2.b;
      end
   end
end