我需要在MATLAB 2014b中创建Patch对象类的子类,但MATLAB不允许我这样做:
Class 'matlab.graphics.primitive.Patch' is Sealed and may not be used as a superclass.
周围有黑客吗?
答案 0 :(得分:1)
不 - 您不能对Sealed
的类进行子类化,而matlab.graphics.primitive.Patch
是内置类,因此您无法进行(黑客)编辑以进行解封它
您可以做的最好的事情是使用适配器模式 - 创建自己的类,将Patch
存储为私有(可能是隐藏)属性,然后将其所有属性和自己的属性包装起来,实现set
和get
方法将值传入/传出基础Patch
。为您需要的任何Patch
方法做类似的事情。您可能还需要在Patch
上收听属性更改事件并对其进行适当的回应。
然后您也可以添加自己的方法,和/或根据需要修改现有的方法和属性行为。
答案 1 :(得分:0)
没有。如果课程是密封的,则不得从中派生。选择密封可能有很好的理由;其他类可以假定一个特定的实现,如果你要从类继承,你可以覆盖它。