Comment heriter plusieurs classes en java [Résolu]

- - Dernière réponse : KX
Messages postés
16054
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
23 octobre 2019
- 3 avril 2014 à 21:29
Bonjour,
J'ai écrit un lecteur en java qui lit en mode console.j'herite la classe Thread et quand je veut heriter la classe JFrame pour faire une interface grafiques ca genere bocoup d'erreurs.
Afficher la suite 

2 réponses

Meilleure réponse
Messages postés
6413
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
17 mai 2018
246
1
Merci
Salut,

L'héritage multiple n'existe pas en java contrairement à certains autres langages de programmation.

Pour t'en sortir, tu n'as que la composition qui soit possible. Dans ta classe qui étend Thread, tu places un attribut JFrame.

Dans ton cas, plutôt que d'étendre Thread, j'implémenterais Runnable et j'étendrais JFrame, dans ce cas là, tu n'auras pas de problème.

Dire « Merci » 1

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 202 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_Julien39
Messages postés
16054
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
23 octobre 2019
88
1
Merci
Bonsoir,

À vue de nez, si tu veux étendre deux classes aussi différentes que JFrame et Thread, c'est que tu ne conçois pas bien le fonctionnement de ces classes et/ou le rôle de l'héritage dans la conception objet.

Quel serait l'intérêt/le but d'avoir une JFrame - ou n'importe quel autre composant graphique - hériter d'un Thread ?

Si ton programme était initialement en console, tu as pu utiliser des Threads qui ne te serviront plus dans une interface graphique.
Je pense que tu devrais regarder à quoi servent les Listener et toute la gestion des événements qui tournent autour de AWT/Swing.

Dire « Merci » 1

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 202 internautes nous ont dit merci ce mois-ci

Commenter la réponse de KX