Surcharger une methode statique en java
Fermé
lonibe
Messages postés
5
Date d'inscription
dimanche 20 octobre 2013
Statut
Membre
Dernière intervention
16 mai 2014
-
Modifié par lonibe le 19/12/2013 à 02:26
lonibe Messages postés 5 Date d'inscription dimanche 20 octobre 2013 Statut Membre Dernière intervention 16 mai 2014 - 11 janv. 2014 à 18:07
lonibe Messages postés 5 Date d'inscription dimanche 20 octobre 2013 Statut Membre Dernière intervention 16 mai 2014 - 11 janv. 2014 à 18:07
A voir également:
- Surcharge java
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel football - Télécharger - Jeux vidéo
- Java apk - Télécharger - Langages
- Java décompiler - Télécharger - Langages
- Waptrick jeux java itel - Forum Jeux vidéo
2 réponses
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 019
19 déc. 2013 à 18:49
19 déc. 2013 à 18:49
"est ce qu on peut surcharger une methode statique en java?"
Non, c'est impossible, ça n'aurait d'ailleurs aucun sens.
L'héritage concerne les objets de la classe (this, super), or puisque la méthode est statique elle ne concerne aucun objet, donc l'héritage n'a pas lieu d'être...
De plus une méthode statique est attachée au nom de la classe qui la définit.
Avec ou sans classe fille c'est toujours le nom de la classe mère qui devra être utilisé pour utiliser la méthode. Si tu définis une méthode de même nom dans une classe fille c'est une méthode totalement indépendante, qui ne surcharge rien.
"quels sont proprietes des methodes et attribute static"
Elle se manipule en dehors de toute instance et ne dispose donc d'aucun des attributs associés aux objets (il n'y a pas de this). On se limitera donc à utiliser les paramètres de la méthodes et les membres statiques de la classe.
"qu est ce qu on peut faire et ne pas faire AVEC?"
On peut faire tout ce que l'on veut, il suffirait de passer en argument un objet de la classe pour avoir un comportement similaire à ce que l'on pourrait faire avec this. Cependant le rôle des méthodes statiques est plutôt de fournir des outils qui n'utilisent pas les propriétés internes des objets.
De manière très générale, si une méthode n'utilise aucun des attributs de la classe, alors elle devrait être statique.
Non, c'est impossible, ça n'aurait d'ailleurs aucun sens.
L'héritage concerne les objets de la classe (this, super), or puisque la méthode est statique elle ne concerne aucun objet, donc l'héritage n'a pas lieu d'être...
De plus une méthode statique est attachée au nom de la classe qui la définit.
Avec ou sans classe fille c'est toujours le nom de la classe mère qui devra être utilisé pour utiliser la méthode. Si tu définis une méthode de même nom dans une classe fille c'est une méthode totalement indépendante, qui ne surcharge rien.
"quels sont proprietes des methodes et attribute static"
Elle se manipule en dehors de toute instance et ne dispose donc d'aucun des attributs associés aux objets (il n'y a pas de this). On se limitera donc à utiliser les paramètres de la méthodes et les membres statiques de la classe.
"qu est ce qu on peut faire et ne pas faire AVEC?"
On peut faire tout ce que l'on veut, il suffirait de passer en argument un objet de la classe pour avoir un comportement similaire à ce que l'on pourrait faire avec this. Cependant le rôle des méthodes statiques est plutôt de fournir des outils qui n'utilisent pas les propriétés internes des objets.
De manière très générale, si une méthode n'utilise aucun des attributs de la classe, alors elle devrait être statique.
JooS
Messages postés
2468
Date d'inscription
mardi 22 janvier 2008
Statut
Membre
Dernière intervention
8 juin 2016
228
19 déc. 2013 à 02:06
19 déc. 2013 à 02:06
Salut,
Biensure que oui, pourquoi ne serait ce pas possible !
Biensure que oui, pourquoi ne serait ce pas possible !
Modifié par JooS le 19/12/2013 à 20:57
20 déc. 2013 à 08:02
Donc effectivement ici on parle de surcharge, donc c'est possible.
En revanche, et même si ce n'était pas la question, je maintiens que la redéfinition n'a pas de sens pour les méthodes statiques, car c'est un concept qui ne s'applique qu'aux objets.
20 déc. 2013 à 14:07
20 déc. 2013 à 18:57
La redéfinition c'est pouvoir enrichir (ou supprimer) le comportement définit par la classe mère mais en affectant uniquement la méthode redéfini, tout le reste est encore disponible.
Mais on peut très bien faire de la redéfinition sans faire de polymorphisme, de même qu'on peux faire du polymorphisme sans redéfinition (même si du coup l'utilité est restreinte...)
De toute façon, polymorphisme ou redéfinition, dans les deux cas ça s'applique à un objet, donc ça n'a pas de sens pour les méthodes statiques.
20 déc. 2013 à 20:09