Java

Clases abstractas

Una clase abstracta, es una clase que no se puede instanciar se usa únicamente para definir subclases

¿Cuándo es una clase abstracta?

En cuanto uno de sus métodos no tiene implementación (en Java, el método abstracto se etiqueta con la palabra reservada abstract).

¿Cuándo se utilizan clases abstractas?

Cuando deseamos definir una abstracción que englobe objetos de distintos tipos y queremos hacer uso del polimorfismo.

public abstract class Figura
{
    protected double x;
    protected double y;
    public Figura (double x, double y){
         this.x = x;
         this.y = y;
   }
   public abstract double area ();
}

public class Circulo extends Figura
{
    private double radio;
    public Circulo (double x, double y, double radio){
         super(x,y);
         this.radio = radio;
   }

    public double area ()
   {
          return Math.PI*radio*radio;
   }
}

public class Cuadrado extends Figura
{
    private double lado;
    public Cuadrado (double x, double y, double lado){
    super(x,y);
    this.lado = lado;
   }

   public double area ()
   {
         return lado*lado;
    }
}