What we actually need is to be able to use different heating algorithms dynamically. To achieve this we will use the strategy pattern, so you end up with:
What methods is this heating strategy going to call on water and stove? Consider for example that the stove builds up rust. Therefore it needs to know the properties of what's inside. Is the heating strategy going to tell it that?