Interface
Un contrat qui décrit quelles méthodes une classe doit implémenter, sans dire comment.
Java/C#/Go ont interface. Rust appelle ça un trait. TypeScript pratique le typage structurel : n'importe quel type possédant les bons champs correspond. Rend possibles le polymorphisme et l'injection de dépendances.