На самом деле, если вам нужен такой тип отношений - ваш дизайн неправильный. Я имею в виду - вам не нужны наследственные отношения в вашем случае, а что-то вроде агрегации или композиции. Например, ваш тип отношений нарушает принцип подстановки Лискова.
НО. Цель C принимает обратные отношения. Вы можете использовать делегаты (@protocol) для описания интерфейсов, которые могут извлекать некоторые данные из неизвестных объектов, которые принимают этот протокол @.
Таким образом, в вашем случае класс B должен соответствовать протоколу, обеспечивающему доступ к некоторым свойствам B. И A должен иметь возможность работать с этим протоколом, то есть знать геттеры, в которых нуждается A.