По-идее это не очень хорошо, так как получается, что у вас не два класса а как бы один, просто разбитый на две части.
Вы не можете заменить один класс и адаптировать его для второго - вам придется в общем случае менять и второй, а это и показывает, что такие классы выступают как одно целое.
Перекрестные зависимости -- В общем случае: ситуация когда в своей работе некая сущность $A$ (модуль, класс -- в зависимости от уровня) опирается на возможности сущности $B$, а сущность $B$ опирается на функционал (возможности) $A$.