1

说我有

classdef A < matlab.mixin.Copyable & matlab.mixin.Heterogeneous
.
.
classdef B < A
.
.
classdef C < A

我想要的是能够通过仅复制 A 属性来基于 B 的实例构造 C 的实例。而且我宁愿不实现自定义mycopy方法,因为那样我每次向 A 添加属性时都需要更新它。

我尝试修改copyElement()B 以便它只调用copyElement()A 的,但(不出所料)仍然返回 B 类的对象。

请注意,我的“转换”与“外面”(SO和Google)的大多数问题相反,后者从超类复制到子类。也许出于某种概念上的原因,我想要的是一个坏主意。尽管如此,正如这里所说

类设计中的一个重要概念是子类对象也是其超类的对象。

而且我知道我可以从超类构造一个子类对象。

4

0 回答 0