Exportar (0) Imprimir
Expandir todo

Interfaces (Guía de programación de C#)

Las interfaces se definen utilizando la palabra clave interface. Por ejemplo:

interface IComparable
{
    int CompareTo(object obj);
}

Las interfaces describen un grupo de comportamientos relacionados que pueden pertenecer a cualquier clase o estructura. Las interfaces pueden estar compuestas de métodos, propiedades, eventos, indizadores o cualquier combinación de estos cuatro tipos de miembros. Una interfaz no puede contener campos. Los miembros de interfaz son automáticamente públicos.

Al igual que las clases se pueden heredar de una clase base o estructura, las clases y estructuras se pueden heredar de interfaces, con dos excepciones:

  • Una clase o estructura puede heredar más de una interfaz.

  • Cuando una clase o la estructura hereda una interfaz, hereda sólo los nombres de método y las firmas, ya que la propia interfaz no contiene ninguna implementación. Por ejemplo:

    public class Minivan : Car, IComparable
    {
        public int CompareTo(object obj)
        {
            //implementation of CompareTo
            return 0;  //if the Minivans are equal
        }
    }
    
    

Para implementar un miembro de interfaz, el miembro correspondiente de la clase debe ser público, no estático y tener el mismo nombre y la misma firma que el miembro de interfaz. Las propiedades e indizadores de una clase pueden definir descriptores de acceso adicionales para una propiedad o indizador definidos en una interfaz. Por ejemplo, una interfaz puede declarar una propiedad con un descriptor de acceso get, pero la clase que implementa la interfaz puede declarar la misma propiedad con descriptores de acceso get y set. Sin embargo, si la propiedad o el indizador utiliza una implementación explícita, los descriptores de acceso deben coincidir.

Las interfaces y los miembros de interfaz son abstractos; las interfaces no proporcionan una implementación predeterminada. Para obtener más información, vea Clases y miembros de clase abstractos y sellados (Guía de programación de C#).

La interfaz IComparable informa al usuario del objeto de que éste se puede comparar con otros objetos del mismo tipo y el usuario de la interfaz no necesita saber cómo se implementa.

Las interfaces pueden heredar otras interfaces. Es posible que una clase herede una interfaz varias veces, a través de las clases base o interfaces que hereda. En ese caso, la clase sólo puede implementar la interfaz una vez, siempre que ésta se declare como parte de la nueva clase. Si la interfaz heredada no está declarada como parte de la nueva clase, la clase base que la declaró proporcionará su implementación. Es posible que una clase base implemente miembros de interfaz a través de miembros virtuales. En ese caso, la clase que hereda la interfaz puede cambiar el comportamiento de la interfaz reemplazando los miembros virtuales. Para obtener más información sobre miembros virtuales, vea Polimorfismo.

Una interfaz tiene las siguientes propiedades:

  • Una interfaz es similar a una clase base abstracta. Cualquier tipo no abstracto que hereda la interfaz debe implementar todos sus miembros.

  • No se pueden crear instancias directamente de una interfaz.

  • Las interfaces pueden contener eventos, métodos, indizadores y propiedades.

  • Las interfaces no contienen implementaciones de métodos.

  • Las clases y estructuras se pueden heredar de más de una interfaz.

  • Una interfaz se puede heredar de varias interfaces.

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft