Thank you, this is exactly it. The problem with inheritance is specifically overloading, and not anything else. Composition as it is being used currently has its own drawbacks (need to manually delegate every method, no clear model for instance construction, the need to duplicate fields across classes, etc.). I wish overloading was just removed from inheritance or that composition had better language support.