Selon la description de la documentation jdk L'interface Runnable fournit une méthode d'activation pour les classes qui ne sont pas des sous-classes Thread. En instanciant une instance de Thread et en l'utilisant comme cible d'exécution, vous pouvez exécuter une classe qui implémente Runnable sans créer de sous-classe de Thread. Dans la plupart des cas, si vous souhaitez uniquement remplacer la méthode run et non les autres méthodes Thread, vous devez utiliser l'interface Runnable. Sauf si vous envisagez de modifier ou d'améliorer le comportement de base de Thread. ====>Repost depuis Zhihu, en attendant la réponse
L'un d'eux est l'héritage et l'autre est l'implémentation d'interface. Java ne prend pas en charge l'héritage multiple, il n'a donc que des threads d'implémentation d'interface.
Selon la description de la documentation jdk
L'interface Runnable fournit une méthode d'activation pour les classes qui ne sont pas des sous-classes Thread. En instanciant une instance de Thread et en l'utilisant comme cible d'exécution, vous pouvez exécuter une classe qui implémente Runnable sans créer de sous-classe de Thread. Dans la plupart des cas, si vous souhaitez uniquement remplacer la méthode run et non les autres méthodes Thread, vous devez utiliser l'interface Runnable. Sauf si vous envisagez de modifier ou d'améliorer le comportement de base de Thread.
====>Repost depuis Zhihu, en attendant la réponse
Fil plus gros ?
L'un d'eux est l'héritage et l'autre est l'implémentation d'interface. Java ne prend pas en charge l'héritage multiple, il n'a donc que des threads d'implémentation d'interface.