He aqui la herencia de mi proyecto.
No incluyo la relacion de herencia de los Servlets, porque aclaro que ya esta definida la Clase HttpServlet y no es codificacion propia.
La clase Articulo la deje con propiedades para poder heredarla y obtener una clase derivada mas reducida y que sea de contenido parecido, como el autor no lo requiero en mis clases hijas lo deje private.
public class Articulo { protected String nombre; private String autor; protected float precio; protected String estado; public String getNombre() { if(nombre == null){ nombre = "Sin nombre especificado"; return nombre; }else{ return nombre; } } public void setNombre(String nombre) { this.nombre = nombre; } public String getAutor() { if(autor == null){ autor = "Sin autor especificado"; return autor; }else{ return autor; } } public void setAutor(String autor) { this.autor = autor; } public String getEstado() { if(estado == null ){ estado = "regular"; return estado; }else{ return estado; } } public void setEstado(String estado) { if(estado == "bueno"){ this.estado = estado; }else if(estado == "malo"){ this.estado = estado; }else if(estado == "regular"){ this.estado = estado; } } public float getPrecio() { return precio; } public void setPrecio(float precio) { this.precio = precio; } public Articulo llenaDatos(Object obj) { if(obj instanceof Articulo){ Articulo UserObject = (Articulo)obj; setNombre(UserObject.getNombre()); setAutor(UserObject.getAutor()); setPrecio(UserObject.getPrecio()); setEstado(UserObject.getEstado()); return UserObject; }else{ return this; } } }
Clase que hereda de Articulo
public class ArticuloGadget extends Articulo { private String comentario; public String getComentario() { if(comentario == null){ this.comentario = "sin comentarios"; return this.comentario; }else { return comentario; } } public void setComentario(String comentario) { this.comentario = comentario; } }
El polimorfismo aplica en mi clase CarroWeb.
ya que puede aplicar que remueva o agrege determinado tipo de Articulo.
Este es la parte de la clase que lo implementa.
public class CarroWeb { private ListlistadoLibros; private List listadoGadgets; private Float total, nuevaCantidad; private String respuesta; private RemovedorDatos rm; private String usuario; public void Agrega(Articulo libro){ listadoLibros.add(libro); } public void Agrega(ArticuloGadget gadget){ listadoGadgets.add(gadget); } public void Remueve(Articulo libro){ if(listadoLibros.contains(libro)){ for(Articulo item : listadoLibros){ if(item.getNombre() == libro.getNombre()){ listadoLibros.remove(item); } } } } public void Remueve(ArticuloGadget gadget){ if(listadoGadgets.contains(gadget)){ for(ArticuloGadget item : listadoGadgets){ if(item.getNombre() == gadget.getNombre()){ listadoGadgets.remove(item); } } } } }
0 comentarios:
Publicar un comentario