./43 > Ben non, pas si tu entends cacher l'implémentation. C'est de l'abstraction. Si en revanche tu sais que quelle que soit l'implémentation tu devras retourner à un moment un Array<ClasseSuperLongue>, alors ça veut dire que dans ton interface il doit y avoir une méthode getArrayOfClasseSuperLongue. Dans tous les cas, si tu caches l'implémentation, tu ne dois pas attendre quoi que ce soit de la classe finale.
Sauf si l'interface hérite d'autre interfaces. Ainsi si ton interface hérite d'Iterable, alors toute méthode qui attend un Iterable<E> marchera.
Je ne comprends pas ce qui te choque là dedans, c'est la base de l'OOP.