Replacement and Refinement
There are actually two different ways that overriding can be handled:
Most languages use both types of semantics in different situations.
Constructors, for example, almost always use refinement.
- A replacement totally and completely replaces the code in the
parent class the code in the child class.
- A refinement executes the code in the parent class, and
adds to it the code in the child class.
Intro OOP, Chapter 16, Slide 07