A voir également:
- Question sur Classe abstraites en Java ?
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel football - Télécharger - Jeux vidéo
- Java apk - Télécharger - Langages
- Java décompiler - Télécharger - Langages
- Java runtime - Télécharger - Langages
9 réponses
L'intérêt est, quand tu crées deux classes qui héritent de cette classe abstraite, de définir des actions différentes dans chacun de ces classes.
tsanta
Messages postés
73
Date d'inscription
jeudi 18 juin 2009
Statut
Membre
Dernière intervention
3 mai 2010
2
19 juin 2009 à 17:08
19 juin 2009 à 17:08
pourkoi on cree alors interface et puis class abstraite!!Pkoi pas tout simplement classe abstraite!!
Merci pour ta réponse biboo.
Mais ce que tu dis, ça resterait également possible si la classe de base n'est pas abstraite (vu qu'elle n'a aucune méthode abstraite).
Pour mieux me faire comprendre :
Je crée une classe A, abstraite avec juste des méthodes concrètes - aucune méthode abstraite !
Résultat : la classe A ne peut être instanciée. OK !
Mais A quoi ça peut servir ? parce qu'on peut créer une classe B qui hérite de A, qui n'est pas abstraite, et qui n'ajoute aucune méthode. En instanciant B, c'est exactement comme ci on instanciait A.
Je me dis qu'il y a peut être une autre utilité ? ou peut être une mauvaise compréhension de ma part !
Mais ce que tu dis, ça resterait également possible si la classe de base n'est pas abstraite (vu qu'elle n'a aucune méthode abstraite).
Pour mieux me faire comprendre :
Je crée une classe A, abstraite avec juste des méthodes concrètes - aucune méthode abstraite !
Résultat : la classe A ne peut être instanciée. OK !
Mais A quoi ça peut servir ? parce qu'on peut créer une classe B qui hérite de A, qui n'est pas abstraite, et qui n'ajoute aucune méthode. En instanciant B, c'est exactement comme ci on instanciait A.
Je me dis qu'il y a peut être une autre utilité ? ou peut être une mauvaise compréhension de ma part !
Tantsa,
On crée les interfaces pour pallier à l'incapacité du Java à implémenter l'héritage multiple.
Je m'explique : On peut bien créer une classe abstraites avec toutes ses méthodes abstraites (presqu'une interface). La classe qui implémentera ces méthodes va hériter d'elle et si elle veut hériter d'une autre classe alors ? l'héritage multiple est impossible. Hors il est possible à une classe d'implémenter plusieurs interfaces tout en héritant d'une et une seule classe.
Les interfaces rendent donc (en quelques sortes) possible l'héritage multiple.
On crée les interfaces pour pallier à l'incapacité du Java à implémenter l'héritage multiple.
Je m'explique : On peut bien créer une classe abstraites avec toutes ses méthodes abstraites (presqu'une interface). La classe qui implémentera ces méthodes va hériter d'elle et si elle veut hériter d'une autre classe alors ? l'héritage multiple est impossible. Hors il est possible à une classe d'implémenter plusieurs interfaces tout en héritant d'une et une seule classe.
Les interfaces rendent donc (en quelques sortes) possible l'héritage multiple.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
tsanta
Messages postés
73
Date d'inscription
jeudi 18 juin 2009
Statut
Membre
Dernière intervention
3 mai 2010
2
19 juin 2009 à 17:21
19 juin 2009 à 17:21
ne t´inquietes pas !t´es pas le seul a avoir faire face avec ca!Pour moi aussi c´est tellement difficile de l´y penser!!!Je suis aussi debutante!!lool
bye
bye
tsanta
Messages postés
73
Date d'inscription
jeudi 18 juin 2009
Statut
Membre
Dernière intervention
3 mai 2010
2
19 juin 2009 à 17:29
19 juin 2009 à 17:29
merci pour ton explication Ulrike!!
Salut,
Entre interface et héritage de classe il y a une différence sémantique essentielle.
L'héritage sert à définir une relation de type 'est une ...' (ou 'est un ...'). P. ex. un Chien est un Animal.
L'interface est un contrat passé entre deux classes : l'une indique qu'elle peut travailler avec une classe qui sait faire ceci ou cela. P. ex. la classe TreeSet sait gérer des objets qui peuvent être ordonnés (implémentent l'interface Comparable). Les chaines de caractères (classe String) et les entiers (classe Integer) implémentent chacune l'interface Comparable et peuvent donc être utilisées l'une et l'autre dans des conteneurs de type TreeSet. Ce n'est pas pour autant que l'une dérive de l'autre (et pour cause, un Integer n'est pas un String).
Cordialement
Entre interface et héritage de classe il y a une différence sémantique essentielle.
L'héritage sert à définir une relation de type 'est une ...' (ou 'est un ...'). P. ex. un Chien est un Animal.
L'interface est un contrat passé entre deux classes : l'une indique qu'elle peut travailler avec une classe qui sait faire ceci ou cela. P. ex. la classe TreeSet sait gérer des objets qui peuvent être ordonnés (implémentent l'interface Comparable). Les chaines de caractères (classe String) et les entiers (classe Integer) implémentent chacune l'interface Comparable et peuvent donc être utilisées l'une et l'autre dans des conteneurs de type TreeSet. Ce n'est pas pour autant que l'une dérive de l'autre (et pour cause, un Integer n'est pas un String).
Cordialement