Différence entre "Import" et " extends"

Résolu
killahbeez68 Messages postés 23 Date d'inscription mercredi 8 novembre 2000 Statut Membre Dernière intervention 12 avril 2005 - 4 mars 2005 à 10:24
killahbeez68 Messages postés 23 Date d'inscription mercredi 8 novembre 2000 Statut Membre Dernière intervention 12 avril 2005 - 4 mars 2005 à 12:07
Hello tlm,

J arrive pas a saisir la diférence entre Importer une class (d'un autre package of course) et heriter d'une classe ( qui se trouve forcement dans le meme package? je sais plus)

Tout ceci dans le but de pouvoir acceder au methode public...

Ex :

Jai un class A qui se sert des methode de la classes B

1 cas) J importe la class B avec Import class_path.B;

Et j utilise la methode dans la classe A comme cela : B.methode()

->La jai une erreur , la methode() de la class B n est pas statique, je comprends pas ce ke ca ve dire...

2 cas)J fais un public class A extends B {

en utilisant directement la methode() de la class B et la tout ce pass nikel !

Il est où le binz ?

Merchiiiii !

5 réponses

cs_neodante Messages postés 2835 Date d'inscription lundi 11 août 2003 Statut Modérateur Dernière intervention 16 décembre 2006 11
4 mars 2005 à 11:32
Salut



Une fois un objet instancié tu peux l'utiliser comme tu le souhaite !!!
Tu peux aussi le passer en tant qu'arguments à une autre méthode pour
qu'elle puisse l'utiliser à son tour ...




"Heritage" ekivo a "import + instanciation de la class importé"
methode()
objet.methode()




En fait héritage et import ne sont pas du tout lié !!!! L'héritage est
simplement le fait de spécialiser un objet autrement dit d'hériter
d'une classe mère.



L'import et la notion de package en revanche vont de paire ! La package
est la représentation en Java de la notion de namespace en C++ ou C#.
Cela permet d'éviter les conflits de noms et également de structurer un
code en module pour s'y retrouver plus facilement. La réprésentation
physique d'un package est un répertoire ... Si tu crées une classe
Window en Java tu verras qu'elle existe déjà (package java.awt je
crois), hors si tu veux quand même créer une classe nommée Window tu
vas avoir un problème ... comment dire au compilateur que c'est ta
classe Window et non celle de l'API java AWT que tu veux utiliser ???
Simplement tu crées ta classe dans un package (ex : abc.def.Window) et
pour dire au compilateur que c'est ta classe qu etu veux utiliser tu
vas mettre :

import abc.def.Window;

et lorsque tu vas faire :

Window w = new Window();

w.display();

Tu vas utiliser ta classe et non celle de AWT ...



J'espère que tu as mieux compris maintenant ...



Pour résumer, le fait de faire un import est comme le #include du C,
c'est de dire au compilateur que tu utilises tel classe et pas une
autre.



@+
3
cs_neodante Messages postés 2835 Date d'inscription lundi 11 août 2003 Statut Modérateur Dernière intervention 16 décembre 2006 11
4 mars 2005 à 10:38
Salut



A mon avis, tu as encore à un peu de chose apprendre (le terme
assimiler me paraît plus approprier !) car je crois que tu n'as pas
bien compris la POO (Programmation Orienté Objet) dont l'héritage, les
modificateurs Java (static, fianl, private, ..), les mots clé (import,
extends, ..)



Le mot clé import sert simplement à dire que tu veux utiliser une
classe issu d'un autre package (si ta classe est dans le même package,
pas besoin de faire import sauf si cela t'amuses !).



Le mot clé extends sert à dire qu'une classe hérité d'une autre (la
classe mère) et que donc par conséquent celle-ci est appelée classe
fille.



Ensuite t'as plus grosse c'est de n'avoir pas bien compris les objets :
pour pouvoir appeler une méthode d'une objet il te faut l'avoir créé
auparavant avec le mot clé new :

MaClasseA obja = new MaClasseA();

obja.uneMethode();



or tu fais directement :

MaClasseA.uneMethode(); sur un objet qui n'existe pas ...



Avec le mot clé statique cela sera différent mais avant d'utiliser le
mot clé static, regarde un peu les tutoriaux de bases su rle langage
Java ou mieux achète toi un livre dont je te recommande : 'Au coeur de
Java volume 1'



@+
0
killahbeez68 Messages postés 23 Date d'inscription mercredi 8 novembre 2000 Statut Membre Dernière intervention 12 avril 2005
4 mars 2005 à 10:46
Houla oui jai completement oublie d'instancier la class en objet effectivement :)

Donc selon toi, apres avoir instancié mon objet , je pe appler la methode directement dans ma nouvelle classe ?

en resumé :

pour ce ki est des methodes :

"Heritage" ekivo a "import + instanciation de la class importé"
methode() objet.methode()

c bien ca ou j raconte encore nimp ? lol

Merci de me repondre aussi rapidement c cool !
0
killahbeez68 Messages postés 23 Date d'inscription mercredi 8 novembre 2000 Statut Membre Dernière intervention 12 avril 2005
4 mars 2005 à 10:54
* instancié ma classe pardon :)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
killahbeez68 Messages postés 23 Date d'inscription mercredi 8 novembre 2000 Statut Membre Dernière intervention 12 avril 2005
4 mars 2005 à 12:07
ok chef
merci pour tout :)
++
0
Rejoignez-nous