/**
* Classe astratta che rappresenta il Thread relativo  a  ciascun
* filosofo. Per scegliere la politica di gestione delle risorse
* basterà estendere questa classe e ridefinire il metodo 
* gestione_risorse().
*/
public abstract class Filosofo extends Thread{
	protected  String nome;
	public Filosofo(){
		this("");
	}// fine costruttore vuoto
	public Filosofo(String nome){
		super();
		this.nome=nome;
	}// fine costruttore 
	public void run(){
		while (true){
			gestione_risorse();
		}// fine while
	}// fine run
	public abstract void gestione_risorse();
}// fine classe filosofo 

Listato 1
Classe astratta Filosofo