3

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

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

这周围有破解吗?

4

2 回答 2

1

不 - 您不能子类化Sealed, 和matlab.graphics.primitive.Patch是一个内置类的类,所以你不能进行(hack)编辑来解封它。

您可以做的最好的事情是使用适配器模式 - 创建您自己的类,将 a 存储Patch为私有(可能是隐藏)属性,然后包装它的所有属性以及您自己的属性,实现setget传递值的方法/来自底层PatchPatch对您需要的任何方法执行类似的操作。您可能还需要侦听 上的属性更改事件Patch并适当地响应它们。

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

于 2015-03-20T17:44:56.663 回答
0

不可以。如果该类是密封的,则不应派生自该类。选择将其密封可能有充分的理由;如果您要从该类继承,其他类可能会假定您可以覆盖的特定实现。

于 2015-03-20T17:19:29.763 回答