Una interfaz define un contrato. Cualquier class
o struct
que implemente ese contrato debe proporcionar una implementación de los miembros definidos en la interfaz. A partir de C# 8.0, una interfaz puede definir una implementación predeterminada de miembros. También puede definir miembros static
para proporcionar una única implementación de funcionalidad común.
https://docs.microsoft.com/es-es/dotnet/csharp/language-reference/keywords/interface
https://geeks.ms/etomas/2010/07/07/c-bsico-interfaces/
https://www.tutorialsteacher.com/csharp/csharp-interface