ок, я на пальцах покажу из боевого примера:
1) есть класс BaseModel, ORM
2) от него наследуются объекты User, Group, IP, Network
3) тебе нужно реализовать пару методов, которыми обладают только классы IP и Network (например, getAddress), ты пишешь трейт и двум объектам ставишь интерфейс Connectable
4) далее, при передаче двух объектов в метод SomeClass::link(Connectable $source, Connectable $target)
5) при этом, у тебя User и Group не будут обладать этой логикой
Эту задачу можно сделать иначе - сделать класс ConnectableModel, от которой наследовать IP и Network
Вот что позволяет) это слова и логика джуна