NOTE
Composition over Inheritance
Reusing behavior through composition/delegation when subtype inheritance would create unnecessary coupling.
This is a historical learning note and may contain outdated or incomplete understanding.
Composition reuses behavior by assembling objects and delegating work rather than inheriting implementation from a base class.
Prefer composition when behavior varies independently or inheritance would expose internal assumptions. Inheritance remains appropriate for a genuine subtype relationship whose instances preserve the parent contract. The goal is not to ban inheritance but to avoid using it only for code reuse.