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的方法和对象
的数据。但是对象
的数据是图形
-超类中实现的方法所需要的。我不理解您尝试的区别制作我建议你做一次调查,因为你对这个问题的解释不清楚。