Interfaz
Un contrato que describe qué métodos debe implementar una clase, sin decir cómo.
Java/C#/Go tienen interface. Rust lo llama trait. TypeScript usa tipado estructural: cualquier tipo con los campos correctos encaja. Habilita el polimorfismo y la inyección de dependencias.