C# Interface Ejemplo Sencillo




Inicamos con un poco de teoria que es una interface en el paradigma orientado a objetos son una coleccion de acciones o propiedades que definen una clase en este caso nuestra interface sera IAve la cual contendra un par de metodos que todas las aves realizan Volar() y Comer().

 public interface IAve
 {
  void Volar();
  void Comer();
 }

Ahora crearemos una clase la cual implementara la interface anteriormente realizada.

public class AvePropiedades:IAve
 {
  public int Patas=2;
  public int Alas=2;
  public int Cola=1;
  public string Nombre{ get; private set;}
  public AvePropiedades(string NAve)
  {
   this.Nombre = NAve;
  }
  public void Volar()
  {
   Console.WriteLine ("Volar");
  }
  public void Comer()
  {
   Console.WriteLine ("Comer");
  }
 }

Como vemos hemos implementado ambos metodos de nuestra interface(Volar();, Comer();) en caso de no implementarlos se generaria un error debido a que estas propiedades o metodos deben de ser obligatorios para poder implementar la interface en nuestra clase.

Ahora crearemos otra clase en la cual implementaremos nuestra clase AvePropiedades la cual contiene un constructor el cual nos inicializa la variable Nombre.

 public class Ave:AvePropiedades
 {
  public Ave(string Nombre):base(Nombre)
  {
  }
 }

Como podemos notar nuestro contructor de la clase Ave nos pide como parametro un string el cual inicalizara nustra clase padre o base AvePropiedades.

Enseguida implementaremos nuestra clase Ave en un codigo simple.

 class MainClass
 {
  public static void Main (string[] args)
  {
   //Instanciamos dos clases del tipo ave pasando de parametro el nombre del ave
   Ave canario = new Ave ("Canario");
   Ave cuervo = new Ave ("Cuervo");
   //Creamos una instancia de nuestra clase principal para llamar el metodo imprimir()
   MainClass main = new MainClass ();
   main.imprimir (canario);
   main.imprimir (cuervo);
   Console.ReadKey ();
  }
  /// 
  /// Imprimir the specified ave.
  /// Este metodo imprimira las propiedades de una clase ave.
  /// 
  /// Ave.
  public void imprimir(Ave ave)
  {
   //Imprimimos el nombre del ave, el numero de patas y el numero de colas
   Console.WriteLine ("Soy un {0} tengo {1} Pata(s), {2} Ala(s) y {3} Cola(s)", ave.Nombre, ave.Patas, ave.Alas, ave.Cola);
   //Llamamos a nuestros dos metodos de la interface Comer() y Volar()
   Console.WriteLine ("Puedo ");
   ave.Comer ();
   Console.WriteLine ("y tambien puedo ");
   ave.Volar ();
  }
 }

Ahora ya tenemos implementada una interface sencilla en nuestra clase
Pueden acceder al codigo completo desde mi github : https://github.com/AlejandroRuiz/Mono/tree/master/Interfaces


Comentarios

  1. Me parece que el método volar debiese estar declarado en una clase base (abstract si se quiere), más que en una interface, porque es un comportamiento de la clase Ave.

    ResponderEliminar

Publicar un comentario

Entradas populares