Assumption 3: HumanBreathingService will be passed to the constructor for Human as a parameter and MartianBreathingService will be passed to the constructor for Martian as a parameter. THIS IS THE DI IN THIS PROJECT.

Thereafter, say you have a method SolarSystemBeing(..) that takes as an argument an instance of SentientLifeForm. Then depending on which instance it gets a Human or a martian the breathingService will be the appropriate one...