Und ich dachte, du weißt, was Interfaces sind, immerhin hast du nen YT Tutorial dazu gemacht.
Ein Interface, oder genauer gesagt eine Interface Referenz ist ein Pointer auf ein Array von Pointern, nämlich die Methodenpointer dieses Interfaces. Die hängen natürlich von der Implementierung dieses Interfaces ab. Wenn eine Klasse 2 unterschiedliche Interfaces implementiert, dann hat es 2 von diesen sogenannten IMTs (Interface method table), pro Interface eins. Diese stehen an einer bestimmten Stelle in der Klasseninformation.
https://sergworks.files.wordpress.co...tintobject.png
Nun dämmert es dir eventuell, warum du nicht einfach einen Hardcast von dem einen Interface auf das andere machen kannst.