ejemplo: colas de tamaño limitado
Se redefinen los métodos por razones de
funcionalidad (se cambia el funcionamiento).
class Cola |
public class Cola {
private List<String> datos = new ArrayList<String>();
public Cola() {
} // mete
sin límite public
void mete(String s) { datos.add(s);
}
public String saca() { return datos.remove(0);
}
public int size() { return datos.size();
} } |
class
ColaMax1 extends Cola |
public class
ColaMax1 extends Cola { private final int max; public ColaMax1(int max) { this.max = max; }
// mete si no hemos llegado al límite
@Override
public void mete(String s) { if (size() < max) super.mete(s); } |
class ColaMax2 extends Cola |
public class ColaMax2 extends Cola {
private final int max;
public ColaMax2(int max) { this.max = max;
} // saca el
primero si se va a superar el límite @Override public
void mete(String s) { if (size() >= max) super.saca(); super.mete(s);
} } |
Temas relacionados
145. Redefinición de métodos [method overriding] (concepto)