Предлагаю переместить вопрос: How the problem of orphans and overlapping is solved in other languages or by different overloading implementation techniques? на мидла-1.
Мне кажется вопрос слишком обширной для джуна, ибо предполагает какое-то знакомство с другими языками программирования, которые имеют систему подобную тайп-классом.