Salut à tous,
j'ai utilisé dans mon exemple une Interface,une classe abstraite,deux classes Golf5 et Polo6 qui heritent de cette dernière et une classe main.
Je veux afficher l'attribut age de ces deux dernieres classes en utilisant la classe abstraite.
l'affichage doit etre 13 et 6 mais il affiche 0 et 0
Si vous pouvez m'aider ...
voici mon code
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 public interface VoitureImp { public void demarrer(); public void arreter(); public void reparer(); }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 public abstract class VoitureAbstr implements VoitureImp { public int age; public abstract void arreter(); public abstract void demarrer(); public abstract void reparer(); }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 public class Polo6 extends VoitureAbstr{ public int age=13; public void arreter() { System.out.println("Voiture Polo6 va s'arreter"); } public void demarrer() { // TODO Auto-generated method stub System.out.println("Voiture Polo va demarrer"); } public void reparer() { // TODO Auto-generated method stub System.out.println("reparer la voiture Polo6"); } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import java.lang.Comparable; import java.util.ArrayList; public class Golf5 extends VoitureAbstr implements Comparable{ public int age=6; public void demarrer() { System.out.println(" Voiture Golf5 va demarrer"); } public void arreter(){ System.out.println("Voiture golf5 va s'arreter"); } public void reparer(){ } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 import java.util.Comparator; public class ComparatorVoitue implements Comparator { public int compare(Object o1, Object o2) { // TODO Auto-generated method stub // if(((Golf5)o1).age > ((Polo6)o2).age) return 1; // else if (((Golf5)o1).age == ((Polo6)o2).age) return 0; // else return (-1); if(((VoitureAbstr)o1).age > ((VoitureAbstr)o2).age) return 1; else if (((VoitureAbstr)o1).age == ((VoitureAbstr)o2).age) return 0; else return (-1); } }
merci d'avance
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.Comparator; import java.util.Iterator; public class VoituresUtiles2 { public void reparerVoiture(VoitureAbstr v ){ v.reparer(); } public void arreterVoiture(VoitureAbstr v ){ v.arreter(); } public int getAgeVoiture(VoitureAbstr v){ return v.age; } public static void main(String args[]){ ArrayList list = new ArrayList(); list.add(new Polo6()); list.add(new Golf5()); Comparator c = new ComparatorVoitue(); Collections.sort(list, c); Iterator it = list.iterator(); while(it.hasNext()) System.out.println("age des voitures"+(((VoitureAbstr)it.next()).age)); //for(int i = 0 ; i <list.size();i++ ) // System.out.println(list.size()); } }
Partager