继承自MATLAB图形对象

时间:2015-03-20 17:05:03

标签: matlab matlab-class

我需要在MATLAB 2014b中创建Patch对象类的子类,但MATLAB不允许我这样做:

Class 'matlab.graphics.primitive.Patch' is Sealed and may not be used as a superclass.

周围有黑客吗?

2 个答案:

答案 0 :(得分:1)

不 - 您不能对Sealed的类进行子类化,而matlab.graphics.primitive.Patch是内置类,因此您无法进行(黑客)编辑以进行解封它

您可以做的最好的事情是使用适配器模式 - 创建自己的类,将Patch存储为私有(可能是隐藏)属性,然后将其所有属性和自己的属性包装起来,实现setget方法将值传入/传出基础Patch。为您需要的任何Patch方法做类似的事情。您可能还需要在Patch上收听属性更改事件并对其进行适当的回应。

然后您也可以添加自己的方法,和/或根据需要修改现有的方法和属性行为。

答案 1 :(得分:0)

没有。如果课程是密封的,则不得从中派生。选择密封可能有很好的理由;其他类可以假定一个特定的实现,如果你要从类继承,你可以覆盖它。