Immutable properties and subclass constructors
Mostrar comentarios más antiguos
Is it possible to somehow set immutable superclass properties in a subclass constructor? It seems not, but maybe I'm just misinterpreting the documentation and error messages and this is possible somehow?
In case this doesn't make sense, my motivation is this: I've written a fairly nice data-analysis object that I use as a superclass all the time. It loads data from the data acquisition tool we normally use, and I have different subclasses for different experiments, which have different analysis requirements but most of the basics are the same (and located in the superclass).
Now I'd like to re-use all that code by loading data (of essentially the same form) but from a different filetype (new constructor required) into the properties expected by the superclass. I could just make the properties protected in the superclass (instead of immutable), but I'd really like them to only be changed within the constructor of the new subclass.
Or maybe I should be approaching this in a different way entirely?
Respuesta aceptada
Más respuestas (1)
Is it possible to somehow set immutable superclass properties in a subclass constructor?
Yes. The subclass constructor can call the superclass constructor and use that to set the immutable property, e.g.,
classdef myclass
properties (SetAccess=immutable)
p;
end
methods
function obj=myclass(pval)
obj.p=pval;
end
end
end
classdef mysubclass < myclass
methods
function obj=mysubclass(pval)
obj=obj@myclass(pval);
end
end
end
1 comentario
Christian Veenstra
el 9 de Ag. de 2017
Categorías
Más información sobre Subclass Definition en Centro de ayuda y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!