Is is possible to control the order of inherited class properties?
Show older comments
Consider two simple classes, where one inherits from the other:
First class:
classdef Example_Class_1 < handle
properties
Property1
Property2
end
end
Second class:
classdef Example_Class_2 < Example_Class_1
properties
Property3
end
end
Now, if I create an Example_Class_2 object, its properties are listed as follows:
Example_Class_2
ans =
Example_Class_2 with properties:
Property3: []
Property1: []
Property2: []
Is there some alternative syntax I can use when defining Example_Class_2, such that Property1 and Property 2 (the inherited properties) appear before Property3 when an Example_Class_2 object is created?
Accepted Answer
More Answers (2)
Steven Lord
on 19 Jun 2020
1 vote
Have your class inherit from matlab.mixin.CustomDisplay and override the getPropertyGroups method. See the "Customize Property Display" section on this documentation page for an example.
1 Comment
Harry Dymond
on 19 Jun 2020
Ashwin
on 19 Jun 2020
0 votes
Although there isn’t any explicit way by which the order of printing of the properties can be changed, you can attempt to overload the properties() function in order to print the properties of a required class in the order you require it. The below question does the same for dynamic properties, it could be of reference.
https://www.mathworks.com/matlabcentral/answers/9777-oop-dynamic-properties-ordering-is-very-strange
However, the process does seem rather tedious to reproduce.
1 Comment
Harry Dymond
on 19 Jun 2020
Edited: Harry Dymond
on 19 Jun 2020
Categories
Find more on Labels and Annotations in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!