How to cast a subclass object to its superclass type..?

21 visualizaciones (últimos 30 días)
Hi everyone,
The MATLAB documentation states:
"MATLAB does not allow you to create arrays containing a mix of superclass and subclass objects because an array can be of only one class."
The MATLAB documentation for function cast() states:
"B = cast(A, newclass) converts A to class newclass, where newclass is the name of a built-in data type compatible with A."
Since we can't use the cast() function to convert a subclass to its superclass, how else can we perform the necessary conversion, in this or any general context..?
For example:
classdef MySuperClass
...
end
classdef MySubClass < MySuperClass
...
end
% Create subclass object:
mySubClassObj = MySubClass(..);
% Try to cast to superclass:
mySubClassObj = cast(mySubClassObj,'MySuperClass');
Error using cast
Unsupported class for conversion.
Any guidance / suggestions appreciated,
Thanks, Brad

Respuesta aceptada

Daniel Shub
Daniel Shub el 14 de Sept. de 2011
First, since r2011a MATLAB supports "Heterogeneous Arrays":
You can also essentially do what cast does by defining your own conversion method:
  1 comentario
Bradley Stiritz
Bradley Stiritz el 14 de Sept. de 2011
Hi Daniel, thanks very much for digging out these DOC pages for me, very appreciated :)
brad

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Construct and Work with Object Arrays en Help Center y File Exchange.

Productos

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by