Assume we have the following class hierarchy (tree):

	Employee
		Manager
		Chef
		Waiter


This simple diagram is showing Employee as the superclass (parent class) and the other three classes as subclasses (child classes).

It would make sense to have a name instance variable on the Employee class. Thus let us say that the superclass Employee has this constructor:

	public Employee(String newFirstName, String newLastName) {
		this.firstName = newFirstName;
		this.lastName = newLastName;
	}


Let us say that we want to construct managers using the same constructor method parameters. Then, we would have to declare a constructor in Manager as well like this:

	public Manager(String newFirstName, String newLastName) {
		super(newFirstName, newLastName);
	}


This constructor is lazy by design. It is "passing through" the name parameters to it's superclass Employee.

Let's say we add an ivar to Manager "teamSize" that is a number representing the team size. We might then want two constructors:

	public Manager(String newFirstName, String newLastName) {
		super(newFirstName, newLastName);
		this.teamSize = 0;
	}
	
	public Manager(String newFirstName, String newLastName, int newTeamSize) {
		super(newFirstName, newLastName);
		this.teamSize = newTeamSize;
	}


We initially set the team size to a "default" value. We use zero here, but we could change that for any a default decided on.