Classe abstrata
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package modelo;
/**
*
* @author toucatronic
*/
public abstract class Banco {
protected Banco sucessor = null;
int codigo;
public void setCodigo(int codigo) {
this.codigo = codigo;
}
public void setSucessor(Banco sucessor) {
this.sucessor = sucessor;
}
public abstract void pegaRequisicao(Deposito d);
}
Classe concreta
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package modelo;
/**
*
* @author toucatronic
*/
public class Brasil extends Banco{
@Override
public void pegaRequisicao(Deposito d) {
if(d.getCodigo() == this.codigo){
System.out.println("Deposito feito pelo Brasil no valor de: "+d.getValor());
}else{
this.sucessor.pegaRequisicao(d);
}
}
}
para mais detalhes veja o projeto em anexo feito no NetBeans 7.2.1