I have a program that needs to be developed. For confidentiality, I will use vague terms. I have a widget which contains members shared by several different classes. My will handle a widget at 2 stages. each stage has different members but they do share some members as well. This is a diagram of the structure.
Widget()
|- -|
SWidget() PWidget()
| -|
Stage1() Stage2()
Swidget and Pwidget inherit from Widget
Swidget contains 2 pwidgets
Stage1 and stage2 inherit from Swidget.
I have a class that will need to implement either a stage1 or stage2
If I declare the variable as a Swidget I can only see what is common. I cannot see what is specific to stage1 or stage2. How do I solve this problem? Inheritance works for everything but how they differ. please advise!
Edit that user posted as "answer":
Stage1 and Stage2 are almost completely the same. They differ with some members and some methods. The problem is that I cannot create properties in the base class to set properties in the specific subclasses. And the stage1/ stage2 class is instantiated before I know the values of their specific members. Thus I have no way of setting them if I declare a instance of the base class in the UI. The base class knows nothing of the subclasses. However, in order to have all properties and methods accessible from the UI, I will have to declare one of each and use the one I need.