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 List listadoLibros;
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