che differenza c'è tra implementare runnable ed estendere Thread???
che differenza c'è tra implementare runnable ed estendere Thread???
Se estendi thread potrai ridefinire altri metodi oltre il metodo run.
Quindi secondo alcuni "puristi" se non tocchi altri metodi apparte run la scelta più ideale è implementare Runnable, ma dipende dal programmatore, io ad esempio preferisco estendere Thread anche se appunto questo approccio c'è chi dice che si deve usare solo quando si migliora la classe nel complesso.
Tieni conto che Java non supporta l'ereditarietà multipla, quindi quando hai già usato una classe come superclasse, non ti resta che usare runnable.
Altra differenza è nella filosofia del progetto, se estendi thread la tua classe sarà un thread, se implementi runnable sarà "una classe abilitata ad eseguire un thread", ma il thread stesso e chi da il corpo al metodo run non saranno la stessa istanza.
Quindi fai come ti piace di più.
Io ad esempio quando ho tanti thread non di grandi dimensioni( quindi non dei server) creo classi anonime che implementano Runnable:
Ma anche questa è ritenuta "sporca".codice:... Thread t = new Thread(new Runnable() { public void run() { // cosa fare } }); ... t.start();
In conclusione usa cosa ti piace di più salvo vincoli(come l'eredità singola)
![]()
Imparare è un'esperienza, tutto il resto è solo informazione. (Albert Einstein)