Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 从超类访问子类中的数据_Matlab_Oop_Object_Subclass_Superclass - Fatal编程技术网

Matlab 从超类访问子类中的数据

Matlab 从超类访问子类中的数据,matlab,oop,object,subclass,superclass,Matlab,Oop,Object,Subclass,Superclass,我有一个来自我自己的类object的对象,它继承了我自己的类data和我自己的MATLAB类graphic。为了表示对象对象,它使用数据-超类中的属性和方法。现在我想用图形-超类中的方法绘制我的对象对象,但是这个超类中的方法对它的对象-子类一无所知 是否有一种方法可以将存储在对象-子类中的所需数据提供给图形-超类,而无需将此信息放入函数参数,如对象.draw(此数据内容)使用方法从图形-超类中绘制,并从对象-子类中绘制数据 我找到的唯一方法是将子类对象object作为属性存储在graphic-超

我有一个来自我自己的类
object
的对象,它继承了我自己的类
data
和我自己的MATLAB类
graphic
。为了表示对象
对象
,它使用
数据
-超类中的属性和方法。现在我想用
图形
-超类中的方法绘制我的对象
对象
,但是这个超类中的方法对它的
对象
-子类一无所知

是否有一种方法可以将存储在
对象
-子类中的所需数据提供给
图形
-超类,而无需将此信息放入函数参数,如
对象.draw(此数据内容)
使用方法
图形
-超类中绘制
,并从
对象
-子类中绘制数据

我找到的唯一方法是将子类对象
object
作为属性存储在
graphic
-超类中,但将子类对象作为属性存储在超类对象中似乎有些奇怪,而子类继承自同一超类

编辑:

数据类:

classdef data < handle

  properties
    data_stuff
  end

  methods

    function obj = data
    end

    function obj = compute(obj)
      obj.data_stuff = ... % math
    end

  end
end
classdef graphic < handle

  properties
  end

  methods

    function obj = graphic
    end

    function obj = draw(obj)
      plot(obj.data_stuff,t) % ERROR, property 'data_stuff' is unknown
    end

  end
end
classdef object < data & graphic

  properties
  end

  methods

    function obj = object
    end

  end
end
object_A = object;  % creates object
object_A.compute;   % generates data_stuff
object_A.draw;      % draws data_stuff, Error here, because 'draw` needs access to the 'data_stuff'-property.

我不确定我是否理解这个问题。如果您的类继承了graphics super,那么它已经有了super的方法。为什么需要单独实例化super?是的,它有自己的方法,但没有来自
对象
子类的所需数据,这是
图形
-超类中的绘图方法所需要的。您的
对象
子类具有super的方法和
对象
的数据。但是
对象
的数据是
图形
-超类中实现的方法所需要的。我不理解您尝试的区别制作我建议你做一次调查,因为你对这个问题的解释不清楚。