Many times a descendant class will have fields that are unique to them that needs to be assigned to in the constructor. For this example we will revisit the Boss inheriting from the Employee class. So far we have a constructor that passes values to the Employee constructor.
But our class diagram shows that the Boss has an accessCode field that the Employee doesn't have.
So let's add that the the Boss class.
And then to assign that field, we need to add a parameter to the Boss constructor and assign it in the constructor.
There will be times when we will need to instantiate an object that is a descendant of another class, but lacks information that the base class constructor needs. To fix this we will need to pass hardcoded and/or calculated values into the base constructor.
Let's say for example that the Boss constructor no longer has a name parameter.
Visual Studio gets mad and says, "hey you were supposed to send me a string for one of my parameters, but it's missing." So what we can do is pass in a hardcoded string to the Employee constructor.
Of course, this should only be done when we know that every instance of the class should have that value. In this example every single Boss object would have the name "Bossman Jones", which is a problem.