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

  FORUM HardWare.fr
  Programmation
  Java

  [Java] héritage abstract

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Java] héritage abstract

n°1270170
ffomnislas​h
Posté le 19-12-2005 à 18:47:19  profilanswer
 

hello  :hello:  
 
Il y  a quelque chose que je ne comprend pas en Java.
 
J'essaye de faire une classe perso pour gérer une image.
Je l'a fait donc hériter de Image.
 

Code :
  1. class ImagePerso extends Image


 
Lors de la compilation le compilateur me demande d'"override" les methodes abstraite de la classe image. Il y a flush par exemple.
Je fait donc

Code :
  1. public void flush(){super.flush();}


 
A ce moment le compilateur me dit que je ne peut pas acceder directement à la méthode flush. J'ai alors essayé de mettre ne place d'autres idées mais il y a toujours quelque chose qui cloche.
 
Alors qu'est ce qui m'échappe dans tous ca ? Quel est la solution ?

mood
Publicité
Posté le 19-12-2005 à 18:47:19  profilanswer
 

n°1270174
theshockwa​ve
I work at a firm named Koslow
Posté le 19-12-2005 à 18:51:18  profilanswer
 

implements ? [:pingouino]

n°1270189
ffomnislas​h
Posté le 19-12-2005 à 19:12:42  profilanswer
 

Ben Image n'est pas une classe abstraite a ce que je sache. Pourquoi je ne pourrais pas faire un bête héritage ?

n°1270199
lorill
Posté le 19-12-2005 à 19:23:45  profilanswer
 

ffomnislash a écrit :

Ben Image n'est pas une classe abstraite a ce que je sache.


ah bon ?
 
http://java.sun.com/j2se/1.4.2/doc [...] Image.html
 

Citation :


public abstract class Image
extends Object
 
The abstract class Image is the superclass of all classes that represent graphical images. The image must be obtained in a platform-specific manner.
 
Since:
    JDK1.0  

n°1270222
trevor
laissez la vie vous étonner...
Posté le 19-12-2005 à 19:51:30  profilanswer
 

ffomnislash a écrit :

Lors de la compilation le compilateur me demande d'"override" les methodes abstraite de la classe image. Il y a flush par exemple.
Je fait donc

Code :
  1. public void flush(){super.flush();}


 
A ce moment le compilateur me dit que je ne peut pas acceder directement à la méthode flush. J'ai alors essayé de mettre ne place d'autres idées mais il y a toujours quelque chose qui cloche.
 
Alors qu'est ce qui m'échappe dans tous ca ? Quel est la solution ?


 
rappel de POO: si la méthode flush() de la classe Image est abstraite, alors forcément la classe est abstraite (c'est pas l'inverse). ça veut donc dire que flush() n'est pas implémentée dans Image, donc c'est à toi de la coder ! :)
et donc si tu (petit rusé ;)) fais un super.flush() tu fais directement référence à la méthode flush() de la superclasse (Image en l'occurrence), soit donc à la méthode non implémentée, donc tu ne résouds pas le problème du tout, et un appel à super.flush() est impossible


---------------
TReVoR - http://dev.arqendra.net - http://info.arqendra.net
n°1270228
ffomnislas​h
Posté le 19-12-2005 à 20:09:20  profilanswer
 

Tu a raison je fait n'importe quoi ^^
 
Finalement voici a quoi ressemble ma classe, avec les méthode dont j'ai besoin actuellement.
 

Code :
  1. import java.awt.*;
  2. class ImagePerso
  3. {
  4. private String chemin = null;
  5. private Image img;
  6. private MediaTracker mTrack;
  7. private Canvas pnl;
  8. public ImagePerso(Canvas pnl2, String chemin2)
  9. {
  10.  super();
  11.  pnl = pnl2;
  12.  chemin=chemin2;
  13.  load();
  14. }
  15. private void load()
  16. {
  17.  if(chemin != null)
  18.  {
  19.   try
  20.   {
  21.    mTrack = new MediaTracker( pnl );
  22.    img = pnl.getToolkit().getImage(  chemin  );
  23.    mTrack.addImage( img, 0 );
  24.    mTrack.waitForAll();
  25.   }
  26.   catch (Exception e)
  27.   {
  28.    System.out.println( " ImagePerso::load : " + e );
  29.   }
  30.  }
  31.  else
  32.   System.out.println( " ImagePerso::load : Aucun chemin d'image spécifié." );
  33. }
  34. public Image getImage()
  35. {
  36.  return img;
  37. }
  38. }


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

  [Java] héritage abstract

 

Sujets relatifs
[java] exécuter une appli java en tache de fond ou service.eregi ou preg contre un script java "resize pop up"
Constructeur destructeur probleme avec heritage[Java] avis sur ce procédé de remplacement de suspend() / resume()
koi installé j2se ? pb de java sous firefox suite à l'install de j2se[Java] synchro entre thread: wait() et notify() -> pb [RESOLU]
Boutique virtuelle en java en utilisant Struts[Java] maj du défilement d'un jtextarea utilisé par 2 classes
Upload en JAVAPb java scrip Help !!!
Plus de sujets relatifs à : [Java] héritage abstract


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