¿Qué es la interfaz en C# con ejemplo?
⚡ Resumen inteligente
Interfaz en C# define un contracque especifica qué métodos y propiedades debe implementar una clase, sin proporcionar el código real. La clase implementadora proporciona el comportamiento concreto, lo que permite un acoplamiento flexible y la herencia múltiple entre tipos no relacionados.

¿Qué es la interfaz en C#?
An Fácil de usar en C# se utiliza junto con una clase para definir un contracSe trata de un acuerdo sobre lo que la clase proporcionará a una aplicación. La interfaz define las operaciones que una clase puede realizar. Una interfaz declara las propiedades y los métodos. La clase es quien define con precisión la función del método.
Veamos un ejemplo de una interfaz cambiando las clases en nuestra aplicación de Consola. Tenga en cuenta que no ejecutaremos el código porque no hay nada que se pueda ejecutar mediante una interfaz.
Ejemplo de interfaz C#
Vamos a crear una clase de interfaz. La clase se llamará “Guru99Interface.” Nuestra clase principal extenderá la interfaz definida. Todo el código debe escribirse en el archivo Program.cs.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DemoApplication { interface IGuru99Interface { void SetTutorial(int pID, string pName); String GetTutorial(); } class Guru99Tutorial : IGuru99Interface { protected int TutorialID; protected string TutorialName; public void SetTutorial(int pID, string pName) { TutorialID = pID; TutorialName = pName; } public String GetTutorial() { return TutorialName; } static void Main(string[] args) { Guru99Tutorial pTutor = new Guru99Tutorial(); pTutor.SetTutorial(1,".Net by Guru99"); Console.WriteLine(pTutor.GetTutorial()); Console.ReadKey(); } } }
Code Explicación:-
Aquí explicamos las secciones importantes del código.
- Primero definimos una interfaz llamada “Guru99Interfaz”. Tenga en cuenta que la palabra clave “interfaz” se utiliza para definir una interfaz.
- A continuación, definimos los métodos que utilizará nuestra interfaz. En este caso, definimos los mismos métodos que se utilizan en todos los ejemplos anteriores. Tenga en cuenta que una interfaz solo declara los métodos, no define el código que contienen.
- Luego hacemos nuestro GuruLa clase 99Tutorial extiende la interfaz. Aquí es donde escribimos el código que define los distintos métodos declarados en la interfaz. Este tipo de codificación logra lo siguiente:
- Garantiza que la clase, Guru99Tutorial solo agrega el código necesario para los métodos “SetTutorial” y “GetTutorial”, y nada más.
- También garantiza que la interfaz se comporte como un contract. los clase tiene que acatar el contratotract. Entonces, si el contracSi dice que debe tener dos métodos llamados “SetTutorial” y “GetTutorial”, entonces así es como debe ser.
Interfaz C# vs. AbstracClase t
Una pregunta común para los principiantes es en qué se diferencia una interfaz de C# de una abstracclase tAmbos definen una contracque otros tipos siguen, pero sirven a objetivos de diseño diferentes.
Las principales diferencias se enumeran a continuación:
- Implementación: Una interfaz contiene solo declaraciones, mientras que un abstracLa clase t puede proporcionar ambos abstracmiembros y métodos completamente implementados.
- Herencia múltiple: Una clase puede implementar muchas interfaces, pero solo puede heredar una.tracclase t.
- Localidad: Un abstracUna clase puede contener campos, constructores y propiedades con datos, mientras que una interfaz no puede almacenar el estado de la instancia.
- Modificadores de acceso: AbstracLos miembros de la clase t pueden ser públicos, protegidos o privados, mientras que los miembros de la interfaz clásica son implícitamente públicos.
- Caso de uso: Utilice una interfaz para agregar una capacidad a través de tipos no relacionados y un abstracLa clase t permite compartir código común entre tipos estrechamente relacionados.
En resumen, una interfaz describe lo que una clase puede hacer, mientras que un abstracLa clase t también puede definir parte de cómo se hace.
Cómo implementar múltiples interfaces en C#
A diferencia de la herencia de clases, C# permite que una sola clase implemente más de una interfaz. De esta manera, el lenguaje ofrece una forma segura de herencia múltiple sin la ambigüedad que surge al heredar varias clases base a la vez.
Para implementar varias interfaces, enumérelas después del nombre de la clase y sepárelas con una coma. La clase deberá definir entonces cada método declarado en cada interfaz que implemente.
Paso 1) Declara dos interfaces, cada una con su propio método.
Paso 2) Crea una clase que implemente ambas interfaces, separando los nombres de las interfaces con una coma.
Paso 3) Proporcione un cuerpo de método para cada miembro declarado en cada interfaz.
El siguiente ejemplo muestra una clase Document que implementa tanto un IReadable y una interfaz IWritable.
using System; namespace DemoApplication { interface IReadable { void Read(); } interface IWritable { void Write(); } class Document : IReadable, IWritable { public void Read() { Console.WriteLine("Reading the document"); } public void Write() { Console.WriteLine("Writing to the document"); } static void Main(string[] args) { Document doc = new Document(); doc.Read(); doc.Write(); Console.ReadKey(); } } }
Code Explicación:-
- Declaramos dos interfaces, IReadable y IWritable. Cada interfaz declara un único método sin cuerpo.
- La clase Document enumera ambas interfaces después de los dos puntos, separadas por una coma, por lo que acepta respetar ambas.tracTs
- La clase define entonces los métodos de lectura y escritura. Saltarping Cualquiera de los dos métodos provocaría un error de compilación.
- El método Main crea un objeto Document y llama a ambos métodos, demostrando que la clase cumple con las dos interfaces.
Cuando se ejecuta el programa, imprime Leyendo el documento en la primera línea y Escribiendo en el documento en la segunda línea. Este patrón mantiene cada contracEs pequeño y específico, lo que hace que la clase Document sea más fácil de probar y extender.
Ventajas de usar interfaces en C#
Las interfaces se utilizan ampliamente en proyectos profesionales de C# porque hacen que el código sea flexible y más fácil de mantener. Te permiten programar de acuerdo a un estándar.tract en lugar de a una clase concreta.
Las principales ventajas incluyen:
- Bajo acoplamiento: Code Depende de la interfaz, no de una clase específica, por lo que una implementación puede cambiar sin afectar a quienes la utilizan.
- Herencia múltiple: Una clase puede heredar el comportamiento de varias interfaces, algo que la herencia de clases simple no permite.
- Testabilidad: Las interfaces simplifican el intercambio de una clase real por un objeto simulado durante las pruebas unitarias.
- Inyección de dependencia: Los frameworks inyectan una implementación de interfaz en tiempo de ejecución, una idea fundamental detrás de los principios SOLID.
- Consistencia: Cada clase implementadora se ve obligada a proporcionar el mismo conjunto de miembros, lo que mantiene la API predecible.
Debido a estas ventajas, las interfaces constituyen la base de la mayoría de los patrones de diseño y marcos de aplicación modernos de C#.

