JavaDabbaDoo.org -Tu comunidad Java parlante Fundamentos
Inicio | Cursos infosintesis.net liberados | JavaSE | Iniciación a la Orientación a Objetos paso a paso
Creación de un Televisor estándar
Paso 10: Clases abstractas

Imaginemos que en nuestra casa tenemos dos mascotas. Una es un perro y la otra un gato

Si extrapolamos este planteamiento al mundo de los Objetos, podemos decir que tenemos

Este es el Diagrama de Clases de Diseño de nuestras mascotas

Para pasar este Diagrama de Clases de Diseño a código Java, vamos a crear un proyecto llamado promascota y un paquete llamado paqmascota

Y también vamos a crear las Clases Mascota, Perro, Gato y Aplicacion

Este es el código correspondiente a la Clase Mascota

package paqmascota;
import
java.util.Date;

public abstract class Mascota {
 private String nombre;
 private
Date fechaNacimiento;

 public abstract void acariciar();

 public void alimentar(String nombreAlimento){
  System.out.println("Mascota - alimentar(...): me acerco al " +
                      nombreAlimento + ", y me lo como");
 }

 public void setNombre(String nombre) {
  this.nombre = nombre;
 }

 public String getNombre(){
  return nombre;
 }

 public void setFechaNacimiento(
Date fechaNacimiento) {
  this.fechaNacimiento = fechaNacimiento;
 }

 public
Date getFechaNacimiento(){
  return fechaNacimiento;
 }
}

Compilamos la Clase Mascota.

Este es el código correspondiente a la Clase Perro

package paqmascota;

public class Perro extends Mascota {

  public void acariciar() {
    System.out.println("Perro - acariciar(): agacho las orejas");
  }
}

Compilamos la Clase Perro.

Este es el código correspondiente a la Clase Gato

package paqmascota;

public class Gato extends Mascota {
 
  public void acariciar() {
    System.out.println("Gato - acariciar(): levanto la cola");
  }
}

Compilamos la Clase Gato.

Ahora le toca el turno a la Clase Aplicacion que tienen que tener un método main(...) para que este programa pueda ser ejecutado.

Si añadimos el siguinete código de la Clase Aplicacion que pertenece al paquete paqmascota

package paqmascota;

public class Aplicacion {

  public static void main(String[] args) {
    Mascota m1 = new Mascota();
  }
}

nos aparece el siguiente error

NetBeans 6 - Error: No se puede instanciar una Clase abstracta - paqmascota.Mascota is abstract; cannot be instantiated

Ahora le añadimos el siguiente código a la Clase Aplicacion

package paqmascota;

public class Aplicacion {

  public static void main(String[] args) {
    
// Mascota m1 = new Mascota();
    Perro p1 = new Perro();
    p1.alimentar("Dog Chow");
    p1.acariciar();
    Gato g1 = new Gato();
    g1.alimentar("Cat Chow");
    g1.acariciar();
  }
}

Y esta es la salida

Página anterior
Ignasi Pérez Valls
Infosintesis Solutions Group


Diciembre 2008
Dudas y comentarios: Foro [1-02] Iniciación a la Orientación a Objetos
 
 
 
 
JavaDabbaDoo.org
Tu comunidad Java parlante. Cursos abiertos, tutoriales y mucho mucho más ...