Código
import java.util.Calendar; import java.util.Scanner; //CLASE PS3 public class PS3Game extends RentItem { super(c,n, 30); } @Override return super.toString() + " fechapublic=" + fechapublic.getTime() + " - PS3 GAME"; } @Override public double pagoRenta(int dias) { return dias * precio; } @Override return super.subMenu() + "\n2-Cambiar Fecha."; } public void setFechaPublic(int y, int m, int d){ fechapublic.set(y, m-1, d); } @Override public void ejecutarOpcion(int op) { switch(op){ case 1: break; case 2: int y = lea.nextInt(); int m = lea.nextInt(); int d = lea.nextInt(); setFechaPublic(y, m, d); break; case 3: } } } //CLASEMOVIE import java.util.Scanner; public class Movie extends RentItem { super(codigo, nombre, precio); estado = "ESTRENO"; } return estado; } this.estado = estado; } @Override return super.toString() + " estado=" + estado + " -MOVIE"; } @Override public double pagoRenta(int dias) { double tot = this.precio; if( estado.equals("ESTRENO")){ if(dias > 2) tot += (dias-2) * 50; } else{ if(dias > 5) tot += (dias-5) * 30; } return tot; } @Override return super.subMenu() + "\n2-Cambiar Estado."; } @Override public void ejecutarOpcion(int op) { switch(op){ case 1: break; case 2: setEstado(lea.next()); break; case 3: } } } //MAIN import java.util.ArrayList; import java.util.Scanner; public class Main { static ArrayList<RentItem> items = new ArrayList<>(); int op; do{ op = lea.nextInt(); switch(op){ case 1: addItem(tipo); break; case 2: int cod = lea.nextInt(); rentarItem(cod); break; case 3: cod = lea.nextInt(); subMenuItem(cod); break; } }while(op!=4); } int codigo = lea.nextInt(); if( buscar(codigo) == null ){ if( tipo.equalsIgnoreCase("MOVIE")){ double precio = lea.nextDouble(); items.add( new Movie(codigo, n, precio) ); } else if( tipo.equalsIgnoreCase("PS3")){ items.add( new PS3Game(codigo, n) ); } } else{ } } private static void rentarItem(int cod) { RentItem ri = buscar(cod); if( ri != null ){ int dias = lea.nextInt(); double result = ri.pagoRenta(dias); } } private static void subMenuItem(int cod) { RentItem ri = buscar(cod); if( ri != null ){ int op = lea.nextInt(); ri.ejecutarOpcion(op); } } private static RentItem buscar(int cod){ for(RentItem ri : items){ if(ri.codigo == cod) return ri; } return null; } }