说我有
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)的大多数问题相反,后者从超类复制到子类。也许出于某种概念上的原因,我想要的是一个坏主意。尽管如此,正如这里所说
类设计中的一个重要概念是子类对象也是其超类的对象。
而且我知道我可以从超类构造一个子类对象。