Editing superclass properties from subclasses
3 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Hi!
I have a question related to the Matlab example http://www.mathworks.com/help/matlab/matlab_oop/a-simple-class-hierarchy.html. For testing I use:
ds = DocSavings;
db = DocBond;
I can change the superclass property "Description" with
ds.Description = 'test';
However, listing "db" properties shows an empty "Description" string. Is there a way to synchronize superclass properties? Is using events and listeners of handle classes the only possible way?
Maybe: Another way is to use the subclasses as normal classes and define objects of these classes as properties of the former superclass?
Is there a better solution?
0 commentaires
Réponse acceptée
per isakson
le 13 Sep 2013
Modifié(e) : per isakson
le 14 Sep 2013
Why do you want different objects to share ( "synchronize" ) property values? However, without looking at the documentation you refer to.
super = SuperClass;
sub = SubClass;
sub.handle.Description = 'Hello';
super.handle.Description
super.handle.Description = 'World';
sub.handle.Description
returns
ans =
Hello
ans =
World
where
classdef SuperClass < handle
properties
handle = DescriptionContainer();
end
end
and
classdef DescriptionContainer < handle
properties
Description
end
end
and
classdef SubClass < SuperClass
properties
another_property
end
end
.
With the help of a dependent property together with set and get methods, I think it would be possible to hide (Access=protected) the property, which I call "handle".
.
The word, "Editing", in the subject line makes me unsure regarding your intent.
"Maybe: Another way ..." sounds strange to me. Wouldn't that overly complicate the dependencies.
"events and listeners" if nothing else it complicates the debugging.
2 commentaires
per isakson
le 16 Sep 2013
Modifié(e) : per isakson
le 16 Sep 2013
Comments:
- What you describe makes me think of a logger. See the FEX-contributions log4m and log4matlab
- Make some experiments with running code before you settle for a solution.
- "Is there a better solution?" I think the solution I outline answers your question.
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Construct and Work with Object Arrays dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!