jueves, 30 de junio de 2011

Puntos Extras(Clase)Interfaces

¿Que es una interfaz?
Una interfaz es una clase completamente abstracta (una clase sin implementación). Por ejemplo:
Si no estuviésemos interesados en conocer la posición de una Figura, podríamos eliminar por completo su implementación y convertir Figura en una interfaz:
public interface Figura
{
public double area ();
}
 
Caracteristicas:
  • En Java las interfaces se declaran con la palabra reservada "interface"  de manera similar a como se declaran las clases abstractas.
  • En la declaracion de una interfaz lo unico que puede aparecer son declaraciones de métodos( su nombre y asignatura, sin su implementacion) y definiciones de constantes simbólicas.
  • Una interfaz no encapsula datos, solo define cuales son los métodos que han de implementar los objetos de aquellas clases que implementan la interfaz. 
  • public class Circulo implements Figura
    {
    private double radio;
    public Circulo (double radio)
    {
    this.radio = radio;
    }
    public double area ()
    {
    return Math.PI*radio*radio;
    }
    }
    public class Cuadrado implements Figura
    {
    private double lado;
    public Cuadrado (double lado)
    {
    this.lado = lado;
    }
    public double area ()
    {
    return lado*lado;
    }
    }
     
  • En Java para indicar que una clase implementa una interfaz se utiliza la palabra reservada "implements".
  • La clase debe entonces implementar todos los metodos definidos por la interfaz o declararse a su vez, como una clase abstracta( lo que no suele ser especialmente util):
abstract class SinArea implements Figura
{
}
Herencia múltiple de interfaces
Una clase puede implementar varios interfaces simultáneamente, pese a que, en Java, una clase sólo puede heredar de otra clase (herencia simple de implementación, múltiple de interfaces).
public abstract class Figura
{
public abstract double area ();
}
public interface Dibujable
{
public void dibujar ();
}
public interface Rotable
{
public void rotar (double grados);
}
public class Circulo extends Figura
implements Dibujable
...
public class Cuadrado extends Figura
implements Dibujable, Rotable
...
 
Referencias:
 Saludos (:

No hay comentarios:

Publicar un comentario