Si la última vez que hablamos de C#, estuvimos comentando la herencia, hoy hablaremos de las interfaces.
Interfaces en lenguajes de programación orientados a objetos
Todos conoceréis las interfaces gráficas de usuario. Son el mecanismo software que nos permite interactuar de manera más o menos intuitiva con unas funcionalidades que nos provee el programa. Es decir, es un mecanismo de comunicar distintos niveles, ocultando los detalles de la implementación.
Eso mismo son las interfaces en lenguajes de programación orientados a objetos como son C# o Java. Se trata de un conjunto de métodos, delegados o eventos, que no tienen implementación. El desarrollo de la funcionalidad de los mismos, se hace en la clase que implementa la interfaz. Es un concepto similar a los prototipos de funciones en lenguajes como C.
Declaración
Siguiendo con el ejemplo de los motores, comentado en la entrega anterior dedicada a la herencia, vamos a crear un interfaz IMotor, a la que luego haremos referencia desde la implementación de la clase. He incluido un método más para que se vean más claras las posibilidades.
interface IMotor
{
// declaración de propiedades
int Potencia
{
get;
set;
}
decimal Par
{
get;
set;
} // declaración de métodos
void printInfo();
// declaración de eventos
}
public class Motor : IMotor
{
int potencia;
decimal par;
public int Potencia {
get { return this.potencia; }
set { potencia = value; }
}
public decimal Par {
get { return this.par; }
set { par = value; }
}
public void printInfo()
{
Console.WriteLine("La potencia es " + Potencia.ToString() + "
y el par: " + Par.ToString());
}
} read more