Member Hoisting
¥In a union hierarchy, the same code may be repeated in every variant.
¥A cardinal rule of software engineering is never
duplicate code. We can
eliminate code duplication in a union hierarchy by hoisting duplicated code (code that is invariant
within the union) into the abstract class at the route of the hierarchy.