我需要在 MATLAB 2014b 中创建 Patch 对象类的子类,但 MATLAB 不允许我这样做:
Class 'matlab.graphics.primitive.Patch' is Sealed and may not be used as a superclass.
这周围有破解吗?
我需要在 MATLAB 2014b 中创建 Patch 对象类的子类,但 MATLAB 不允许我这样做:
Class 'matlab.graphics.primitive.Patch' is Sealed and may not be used as a superclass.
这周围有破解吗?
不 - 您不能子类化Sealed
, 和matlab.graphics.primitive.Patch
是一个内置类的类,所以你不能进行(hack)编辑来解封它。
您可以做的最好的事情是使用适配器模式 - 创建您自己的类,将 a 存储Patch
为私有(可能是隐藏)属性,然后包装它的所有属性以及您自己的属性,实现set
和get
传递值的方法/来自底层Patch
。Patch
对您需要的任何方法执行类似的操作。您可能还需要侦听 上的属性更改事件Patch
并适当地响应它们。
然后,您也可以添加自己的方法,和/或根据需要修改现有方法和属性行为。
不可以。如果该类是密封的,则不应派生自该类。选择将其密封可能有充分的理由;如果您要从该类继承,其他类可能会假定您可以覆盖的特定实现。