MEJOR SITIO PARA DESARROLLADORES WEB
Lenguaje C#. W3Schools lecciones en español

Ua En De

C# Interfaz


Interfaces

Otra forma de lograr abstracción en C# es con interfaces.

Una interfaz es una "clase abstracta" completamente, que solo puede contener métodos y propiedades abstractos (con cuerpos vacíos):

Ejemplo

// interfaz
interface Animal
{
  void animalSound(); // método de interfaz (no tiene cuerpo)
  void run(); // método de interfaz (no tiene cuerpo)
}

Se considera una buena práctica comenzar con la letra "I" al comienzo de una interfaz, ya que hace que sea más fácil para usted y para los demás recordar que es una interfaz y no una clase.

De forma predeterminada, los miembros de una interfaz son abstract y public.

Nota: Las interfaces pueden contener propiedades y métodos, pero no campos.

Para acceder a los métodos de la interfaz, la interfaz debe ser "implementada" (más o menos heredada) por otra clase. Para implementar una interfaz, use el símbolo : (al igual que con la herencia). El cuerpo del método de interfaz lo proporciona la clase "implementar". Tenga en cuenta que no es necesario utilizar la palabra clave override al implementar una interfaz:

Ejemplo

// Interfaz
interface IAnimal
{
  void animalSound(); // método de interfaz (no tiene cuerpo)
}

// Pig "implementa" la interfaz IAnimal
class Pig : IAnimal
{
  public void animalSound()
  {
    // El cuerpo de animalSound() se proporciona aquí
    Console.WriteLine("The pig says: wee wee");
  }
}

class Program
{
  static void Main(string[] args)
  {
    Pig myPig = new Pig();  // Crear un objeto Pig
    myPig.animalSound();
  }
}

Inténtalo tú mismo »


Notas sobre interfaces:

  • Al igual que las clases abstractas, las interfaces no se pueden utilizar para crear objetos (en el ejemplo anterior, no es posible crear un objeto "IAnimal" en la clase Programa)
  • Los métodos de interfaz no tienen cuerpo: el cuerpo lo proporciona la clase "implemento"
  • Al implementar una interfaz, debes anular todos sus métodos
  • Las interfaces pueden contener propiedades y métodos, pero no campos/variables
  • Los miembros de la interfaz son por defecto abstract y public
  • Una interfaz no puede contener un constructor (ya que no se puede utilizar para crear objetos)

¿Por qué y cuándo utilizar interfaces?

1) Para lograr seguridad: oculte ciertos detalles y muestre solo los detalles importantes de un objeto (interfaz).

2) C# no admite la "herencia múltiple" (una clase solo puede heredar de una clase base). Sin embargo, se puede lograr con interfaces, porque la clase puede implementar múltiples interfaces.

Nota: Para implementar varias interfaces, sepárelas con una coma (consulte el ejemplo a continuación).