jueves, 4 de marzo de 2010

Clases abstractas en Java (06.01.01)

Sirven para modelar objetos de alto nivel, no contienen código, sino solo declaraciones. Todos sus métodos deben existir en sus clases hijas.
Una clase abstracta no puede ser instanciada (Crear un objeto a partir de ella).
Métodos abstractos
Estos métodos son parte de clases abstractas
Un método abstracto debe ser redefinido en las subclases.
Cada subclase puede definir el método de manera diferente.
Las clases abstractas pueden contener métodos que no son abstractos.
Laboratorio.
Que falta en el siguiente código?

Item.java

public abstract class Item {
    protected String titulo;
    protected float precio = 5.0f;
    public abstract boolean esAlquilable();
    public float getPrecio() {
        return precio;
    }
}
Pelicula.java
public class Pelicula extends Item {
    public boolean esAlquilable() {
        return true;
    }
}
Libro.java
public class Libro extends Item {
     public float getPrecio() {
        return 0.0f;
     }
}
TestAbstract.java
public class TestAbstract {
    public static void main (String[] args) {
        Pelicula pelicula = new Pelicula();
        Libro libro = new Libro();
        System.out.println(pelicula.esAlquilable());
        System.out.println(pelicula.getPrecio());
        System.out.println(libro.esAlquilable());
        System.out.println(libro.getPrecio());
    }
}
Compartir:

3 comentarios:

  1. Gracias amigo me ayudo entenderle. Mi profesor no me volverá a tomar por sorpresa otra vez

    ResponderEliminar
  2. Faltaría implementar el método abstracto esAlquilable() en la subclase Libro ;)

    ResponderEliminar