OOP - Sealed Superclasses
显示 更早的评论
I am trying to create a custom class to overload the MATLAB image object but am getting this error message:
Class 'matlab.graphics.primitive.Image' is Sealed and may not be used as a superclass
Is there a list of [graphics] objects in The MathWorks documentation which are not "sealed?"
Or should I start from the beginning with
classdef overloadedImage < handle
采纳的回答
更多回答(2 个)
Tibor Auer
2021-6-28
0 个投票
I have a similar issue with graph class, which is also Sealed. I would like to extend its funcionality by adding further methods and proprties.
4 个评论
Tibor Auer
2021-6-28
编辑:Tibor Auer
2021-6-28
I have found a hacky workaround; however, it may not work for all cases:
classdef superClass
properties (Access = protected)
subClassInstance
end
methods
function obj = extendedGraph(varargin)
obj.subClassInstance = subClass(varargin{:});
end
function val = getSubClassProperty(obj,prop)
val = obj.subClassInstance.(prop);
end
function val = execSubClassMethod(obj,hMethod,varargin)
val = hMethod(obj.subClassInstance,varargin{:});
end
end
You can extend this class definition with custom properties and methods.
Steven Lord
2021-6-29
What types of methods and properties are you trying to add to the graph class?
Tibor Auer
2021-6-29
The main extension is to add methods to calulate the line of the graph and some further methods supporting the calculation.
I have also added some customised plotting as a method, which also adapts to when the graph is a line of a graph.
Peter Cook
2021-6-29
Tibor Auer
2021-6-29
0 个投票
@Peter Cook, There might be some misunderstanding. "Line of graph" is not about plotting but transforming: Line graph - Wikipedia
类别
在 帮助中心 和 File Exchange 中查找有关 Creating, Deleting, and Querying Graphics Objects 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

