1) Dans un cas on hérite dans la classe cible de la classe Thread qui elle-même hérite de la classe Object. La classe héritée ainsi possède tous les attributs et les méthodes de la classe Thread. Dans l'autre, on implémente une interface Runnable dans la classe cible. 2) Java n'autorise pas l'héritage multiple et un programme peut comporter plusieurs threads faisant des traitements différents et ce dans différentes classes pouvant être déjà des classes filles, d’où l'interface Runnable.