Ecco le 2 classi:


public abstract class Problema <P,S>{

public Problema ( int num_max_soluzioni ){
this.num_max_soluzioni =num_max_soluzioni ;
}
}


public class ProblemaConcreto extends Problema<Lavoro, Integer>{

private LinkedList<Lavoro> lavori;
private LinkedList<Vincolo> vincoli;


public ProblemaConcreto(LinkedList<Lavoro> l,LinkedList<Vincolo> v) {

super(1);
lavori=new LinkedList<Lavoro>(l);

vincoli=new LinkedList<Vincolo>(v);

durataMax=sommaComplessiva(lavori);

}
}