Question sur Classe abstraites en Java ?

Fermé
Ulrik18 - 19 juin 2009 à 16:47
 Ulrik18 - 19 juin 2009 à 21:17
Bonjour,

Je suis débutant en programmation JAVA. Je viens de découvrir le concept de classes abstraites plutôt intéressant.
Bon, mais je me rend compte qu'il est possible de définir une classe abstraite sans y définir une seule méthode abstraite. Je me demande à quoi ça peut bien servir ?

Merci pour vos réactions !!!
A voir également:

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.
0
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
pourkoi on cree alors interface et puis class abstraite!!Pkoi pas tout simplement classe abstraite!!
0
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 !
0
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.
0

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
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
0
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
merci pour ton explication Ulrike!!
0
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
0
Personne n'a de réponse à ma question ? (sans vouloir mettre la pression).
0
Merci pour la précision chfh !!!
0