Aller au menu - Aller au contenu

[Plan du site] Vous êtes ici --- > Le Site du Zéro > Les forums > Programmation > Langage Java > Le polymorphisme > Lecture du sujet

Le polymorphisme

Vous devez être inscrit pour pouvoir poster des messages

Page : 1 
Auteur Message
1 visiteur sur ce sujet (1 anonyme)
Page : 1 
Hors ligne nanona # Posté le 03/07/2008 à 23:14:01
0 d2m1 je serai 1,promis;)
Avatar
Groupe : Membres
j'ai relie plusieurs fois le tuto mais sans éclairage autour le polymorphisme :(
quelqu'un me l'explique différemment
d'avance merccccccccccccci
Édité le 03/07/2008 à 23:15:37 par nanona

Image utilisateur
 
Hors ligne askerat # Posté le 04/07/2008 à 00:27:46
Groupe : Membres
De facon plus technique, il permet de définir différents comportements pour des objets de meme type. Autrement dit, si tu as B qui herite de A, et methode() une methode définie dans A et redéfinie dans B. Et que tu as la déclaration suivante : A a = new B(); Alors, l'appel de a.methode(); appellera bel et bien les instructions définies dans la methode methode() définie dans B. A toi de faire des essais et de voir tout ça. Mais c'est surtout une chose que l'on peut appliquer correctement avec un minimum de bagage, fait quelques petits projets, utilise le langage, ça viendra naturellement, penser objet amène logiquement à comprendre ce type de nuances/fonctionnalitées offertes par le langage et la POO.
Hors ligne cysboy # Posté le 04/07/2008 à 07:38:25
tout est bô dans l' info
Avatar
Groupe : Membres
"Poly" signifie plusieurs et "morphe" signifie forme.

Tu as du remarquer qu'en Java tes objets ont un type (String, Object, A, Toto).
Le polymorphisme te permet d'utiliser tous les objets d'une hiérarchie sans te soucier de quel type ils sont...

Comme tu as dû le lire, tous les objet en Java hérite automatiquement de la classe Object !
Donc String hérite de la classe Object.

Si tu créé une classe String2 qui hérite tacitement de Object et String3 qui hérite de String2, en partant du principe que toutes ces classes redéfinissent la méthode toString(), voici ce que ça pourrait donner :

String2.java + String3.java
Code : Java
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
public class String2{

	private String value;
		
	
	public String2(String val){
		this.value = val;
	}
	
	public String2() {
		// TODO Auto-generated constructor stub
	}


	public String toString(){
		System.out.println("Méthode toString dans String2");
		return this.value;
	}
}




public class String3 extends String2 {
	private String value;
	
	public String3(){
		
		this.value = "Rien";
	}
	
	public String3(String val){
		
		this.value = val;
	}
	
	public String toString(){
		System.out.println("Méthode toString dans String3");
		return this.value;
	}
}


Et la classe de test :

Code : Java
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
public class Main {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		//On déclare un tableau d'objet
		Object[] tabObj = new String2[5];
		//On met ensuite des instance de String2 et String3
		tabObj[0] = new String3("String3");
		tabObj[1] = new String2("String 2");
		tabObj[2] = new String3("String 3");
		tabObj[3] = new String2("String 2");
		tabObj[4] =	new String3("String 3");

		//PLutôt que se soucis dub type de l'objet
		//On utilise le polymorphisme vu qu'il y a héritage
		//et redéfinition de méthode
		for(Object str : tabObj){
			System.out.println(str.toString());
		}
		
	}

}


Ce qui me donne :
Image utilisateur


Image utilisateurImage utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur
 
Hors ligne daedric # Posté le 05/07/2008 à 18:02:09
Groupe : Membres
mouaip j'aurais plutot montrer avec des interfaces

"n'est pas mort ce qui semble a jamais dormir et en d'étranges temps même la mort peut mourrir"
 
Hors ligne nanona # Posté le 09/07/2008 à 23:00:56
0 d2m1 je serai 1,promis;)
Avatar
Groupe : Membres
j'ai rien compris pardon cysboy!
est ce qu'il est possible de poursuivre le tuto sans savoir le polymorphisme ?
une 2ème question combien du temps me faut pour être un petit développeur java ?

Image utilisateur
 
Hors ligne demonixis # Posté le 09/07/2008 à 23:59:57
...And Justice for All
Avatar
Groupe : Membres
Quand j'ai fait ma 1er année de DUT info, on m'a dit :

- Pour former un developpeur Java il faut 1 an
- Pour un developper C++ c'est 5 ans...

Java est un langage simple, avec beaucoup de pratique, et une bonne soif de connaissance, tu sera capable de commencer des petits projets dans quelques mois (si tu pratique beaucoup ! car la théorie est très importante, mais la pratique !!!! y'a rien de mieux crois moi ;))

Mon site :: C/C++, Java, OpenGL, etc...
Mon blog

 
Hors ligne askerat # Posté le 10/07/2008 à 00:45:38
Groupe : Membres
Les chiffres me choquent un peu, mais d'autant plus qu'on parle de polymorphisme, chose qui à la base n'a rien à voir ni avec le C++, ni avec le Java. A la base il s'agit d'un concept, un concept de la POO. Alors oui, je vous vois venir, ce sont deux langages OO, n'empeche que bien souvent, ces concept sont trop naturellement expliqués via des langages, on pourrait presque croire que le langage a invité le concept.

Puis bon, de là à dire qu'il faut 5 fois plus de temps à assimiler le C++ ça me parait beaucoup tout de même, c'est plus long c'est clair. La structure de la lib standart est pas aussi évidente, il est pas facil de rivaliser avec la documentation java, le C++ possède beaucoup plus de précision de maniere générale sur pas mal de plans, mais si on sait pas concevoir, en java ou en C++ le probleme est le meme. La simplicité de java permet sans doute de laisser plus de temps à la conception OO en elle meme. Mais c'est que le C++ était sans doute mal enseigné, trop accés sur le langage je pense.
Hors ligne daedric # Posté le 10/07/2008 à 01:38:30
Groupe : Membres
Citation : demonixis
Quand j'ai fait ma 1er année de DUT info, on m'a dit :

- Pour former un developpeur Java il faut 1 an
- Pour un developper C++ c'est 5 ans...



mouais ...
Suis pas convaincu... en c++ lal ib standard est plus pauvre qu'en java
en java programmer correctement reclame beaucoup de temps aussi
genre un mec du forum qui met ses champs de classe dans une interface ...


sinon quant au polymorphisme c'est la capacite d'un objet a avoir plusieurs types
si j'etais toi je m'en preocupperais pas pour le moment et je commencerais le java
soit tu en auras vraiment besoin et tu viendras demander comment implementer une certaine solution
soit tu l'utiliseras sans savoir que c'est ca

"n'est pas mort ce qui semble a jamais dormir et en d'étranges temps même la mort peut mourrir"
 
Hors ligne nanona # Posté le 11/07/2008 à 18:14:53
0 d2m1 je serai 1,promis;)
Avatar
Groupe : Membres
une année c trop,j’aurai voulu voir un ou deux mois

Image utilisateur
 
Hors ligne askerat # Posté le 11/07/2008 à 18:21:06
Groupe : Membres
Pourquoi cet empressement ? Au pire si tu vas sur d'autres langages, tu continueras à développer des compétances en algorithmique et en POO si le langage le permet. Beaucoup de choses se recoupent de langage en langage, apres la différence se fait dans la connaissance de la librairie ou des librairies principales, mais on est pas bon programmeur parce qu'on connait toutes les classes qui composent java.util et qu'on connait les prototypes de toutes leurs méthodes hein.

Retour au forum "Langage Java" ou à la liste des forums

Vous devez être inscrit pour pouvoir poster des messages

Changer de design | En savoir plus | Plan du site | Politique d'accessibilité | Règles | RSS tutoriels | RSS news
Édité par Simple IT SARL : Nous contacter | Notre blog | Revue de presse | Publicité

Y'a plus rien à lire, faut remonter maintenant !

Hébergement web - Correction de tutoriels - Créer un site
Vous souhaitez apparaître ici ? Contactez-nous.

Nombre de connectés 198 Zéros connectés | Requêtes SQL 9 requêtes | Temps de génération de la page : Total (SQL) 0.1235s (0.081s)