Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1645 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  Abstract Extends et Super...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Abstract Extends et Super...

n°1497547
3fany
Posté le 31-12-2006 à 14:11:43  profilanswer
 

Bonjour tout le monde!  
 
J'ai besoin d'aide pour un petit programme en java :  
 
J'ai une classe Personne :  
public abstract class Personne {  
protected String nomP;  
protected boolean estHomme;  
protected int age;  
protected String grade;  
 
public boolean equals(Object p) {  
if (p instanceof Personne)  
return (this.nomP).equals(((Personne)p).nomP);  
else return false;  
}  
 
public String getNomP() {  
return nomP;  
}  
}

 
J'ai une classe Operateur qui hérite de Personne :  
 
public class Operateur extends Personne {  
[#f0000e]public Operateur (String nomP, boolean estHomme, int age, String grade){ .....  
}[#e2001c]
 
public String toString() {  
if (estHomme)  
return "Nom : " +nomP+ " / Sexe : Homme / Age : "+age+ " / Grade : " +grade + " / Opérateur \n ";  
else return "Nom : " +nomP+ " / Sexe : Femme / Age : "+age+ " / Grade : " +grade+ " / Opérateur \n ";  
}  
}

 
Mon problème c'est que je n'arrive pas définir le constructeur de Operateur, je voulais faire appel à SUPER mais je ne peux pas car je n'ai pas de constructeur dans Personne... Alors comment dois-je faire pour accéder aux attributs de Personne?  
 
Si quelqu'un comprend ce dont je parle, répondez-moi vite!!!  
 
Merci beaucoup,  
A bientôt!

mood
Publicité
Posté le 31-12-2006 à 14:11:43  profilanswer
 

n°1497649
Ricco
Retour au pays
Posté le 01-01-2007 à 14:02:58  profilanswer
 

Super(), c'est pour appeler la fonction qu'on est en train de réécrire en héritant ... Je ne vois pas trop le rapport avec les attributs.


---------------
"L'informatique n'est pas plus la science des ordinateurs que l'astronomie n'est celle des télescopes." Michael R. Fellows & Ian Parberry
n°1497755
charly007
Posté le 01-01-2007 à 22:39:02  profilanswer
 

3fany a écrit :

Alors comment dois-je faire pour accéder aux attributs de Personne?  


Sachant que tu as déclaré les champs de Personne en protected, tu peux y accéder dans les classes qui héritent de Personne.
 
http://java.sun.com/docs/books/tut [...] ntrol.html

n°1497867
angelx24
Posté le 02-01-2007 à 12:39:40  profilanswer
 

Tu dois tout d'abord créer un constructeur dans la classe père.
 
Après écrit dans la classe père les méthodes suceptible d'être commune à toute les classes filles comme son adresse, son age etc...

n°1497928
charly007
Posté le 02-01-2007 à 13:44:44  profilanswer
 

angelx24 a écrit :

Tu dois tout d'abord créer un constructeur dans la classe père.


La classe Personne est abstraite, elle ne peut être instanciée.
 
3fany > Pour quelle raison as-tu déclaré la classe Personne abstraite ?

Message cité 1 fois
Message édité par charly007 le 02-01-2007 à 13:45:37
n°1498105
brisssou
8-/
Posté le 03-01-2007 à 09:22:22  profilanswer
 

charly007 a écrit :

La classe Personne est abstraite, elle ne peut être instanciée.


 
c'est pas incompatible


---------------
HFR - Mes sujets pour Chrome - Firefox - vérifie les nouveaux posts des topics suivis/favoris
n°1498435
charly007
Posté le 03-01-2007 à 20:19:43  profilanswer
 

brisssou a écrit :

c'est pas incompatible


En effet, j'ai appris quelque chose aujourd'hui  :D

n°1498613
brisssou
8-/
Posté le 04-01-2007 à 10:45:27  profilanswer
 

bref de bref, angelx24 avait raison, faut d'abord définir le constructeur de Personne, qui prend (nom, sexe, age... toussa) en paramètre.
 
ensuite j'imagine que ta classe Operateur va définir d'autres attributs, sinon, peut-être qu'un attribut métier dans Personne... enfin à voir quoi.


---------------
HFR - Mes sujets pour Chrome - Firefox - vérifie les nouveaux posts des topics suivis/favoris
n°1498667
angelx24
Posté le 04-01-2007 à 12:38:49  profilanswer
 

La classe père aura son constructeur, le fait de la déclarer en tant qu'abstract est simplement que l'on a de nombreuses classe qui vont en dérivé.
 
Donc chaque classe dérivé va faire appel au constructeur de la classe père via "super".
 
Genre :
 
Classe père "Personne" : age, nom, adresse (commun à toute personnes).
 
Classe fille "Opérateur" qui hérite de tous les attributs de la classe personne et qui bénéficie de ses propres attributs.
 
ex:
 
public abstract class Personne {  
protected String nomP;  
protected int age;  
protected boolean homme = false;
 
public Personne(String nom, int ag, boolean sexe) {
if (nom != null)  this.nomP = nom;
this.age = ag;
this.homme = sexe;
}
 
public boolean equals(Object p) {  
if (p instanceof Personne)  
return (this.nomP).equals(((Personne)p).nomP);  
else return false;  
}  
 
public String getNomP() {  
return nomP;  
}  
}  
 
public Opérateur extends Personne {
 
int grade = -1;
 
public Opérateur (String n, int ag, boolean sexe, int grade) {
super(n, ag, sexe);
this.grade = grade;
 
etc...


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  Abstract Extends et Super...

 

Sujets relatifs
Un truc super simple pour des commentaires?must implement the inherited abstract
un super forum de partage ![Java] héritage abstract
super débutante lecteur code barrecpgnuke c'est super
Implicit super constructor Batch() is undefined. Must explicitly invokJavascript Screennnnnnnnnnnnnn
Probleme super etrange de tableaux superposés [resolu]Recherche topic super pratique :)
Plus de sujets relatifs à : Abstract Extends et Super...


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR