Подписи должны точно соответствовать указаниям интерфейса. Нет причин, по которым вы не можете вернуть экземпляр X
из метода, но подпись метода должна будет использовать IB
.
Что касается разумной причины ... вероятно, это предпочтительнее точки считывания кода зрения.
Вы можете реализовать интерфейс явно и предоставить альтернативную подпись, которая возвращает X
, которая не определена интерфейсом. Если вы знаете, что ваш IA
на самом деле является X
, вы можете использовать это.