Categorías: Tutoriales

Curso C# con Mono – Interfaces

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());
 }
}

Como podéis apreciar, la declaración de los interfaces es muy similar a la de una clase, incluyendo la palabra clave Interface. La llamada al interfaz desde la clase que lo implementa se realiza como si de una herencia se tratara.

Los interfaces también soportan herencia por si mismos. El único detalle a recordar, es que en caso de conflicto por duplicidad de nombres (un interfaz hereda de otros interfaces en los que hay un método con el mismo nombre en los dos), hay que hacer referencia explícita a cuál se está llamando:

  • interfazA.método()
  • interfazB.método()

¿Para qué sirven?

Más que para qué sirven voy a comentar para qué los uso en mis desarrollos. Aunque para clases pequeñas no tenga mucho sentido hacerlo, cuando los objetos cogen cierto tamaño, las interfaces facilitan enormemente la comprobación de errores. Por ejemplo, si se nos ha olvidado definir un método o si hay conflictos de tipos de datos, el compilador nos avisa. Recordad lo cómodo e inmediato que es declarar interfaces, en lugar de las clases directamente, con todo el desarrollo que conlleva.

Al fin y al cabo, es otra forma más de crear un mayor grado de abstracción y poder explotar mejor las posibilidades que nos ofrecen la orientación a objetos.

Entregas anteriores

F. Javier Carazo Gil

Cofundador de CODECTION, empresa especializada en WordPress, autor de un libro sobre WordPress (el primero en español) y multitud de artículos (en medios físicos y virtuales) sobre el tema. Participa en la comunidad WordPress de forma activa siendo parte del equipo organizador de la WordPress Meetup de Córdoba, dando charlas en diferentes WordCamp y siendo autor y coautor de multitud de plugins libres y premium para WordPress de gran éxito.

Ver comentarios

  • Me disculpo por el error anterior....

    Me han gustado tu tutorial, me pregunto si continuaras con el y de ser asi, quizas aumentarlo con algun desarrollo de alguna applicacion mas avanzada en modevelop, donde se incluyan varias ventanas, quizas base de datos.

    Gracias por tu tiempo.

  • @baner: el curso ahora mismo está... podríamos decir que congelado. La idea es retomarlo en un futuro pero ahora mismo tengo idea de continuar con otros cursos que tardamos menos en hacer y que son también de interés.

  • Muy bueno el curso, pero seria interesante si abordaran mas sobre como trabajar el Gtk del mono.

  • @Ricard: Es una de las opciones que estamos planeando, pero hay otros cursos que también pueden interesaros y que quizás vayan delante.

  • ¡Bueno, llegué al final del curso!
    Hice todos los ejemplos que venían, así que creo que diste buenas bases, ahora a seguir investigando, rumbo a las aplicaciones web :)

    ¡¡¡Muchas Gracias!!!

Entradas recientes

DeepSeek

2 días hace

Contacto

2 semanas hace

Smart-tv mute

2 semanas hace

STEAM OS

3 semanas hace

2025

1 mes hace

El podcast de Linux Hispano – #072 – El hardware libre debe consolidarse como el software libre

https://www.youtube.com/embed/z-xGk9c_eOw Guionista y locutor: Manuel Ignacio López Quintero.Fecha de publicación: 31 de diciembre de 2024.

1 mes hace