Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

classe abstraite et interface

5 réponses
Avatar
Titeuf
Bonsoir,
Quelle est la différence entre une classe abstraite et une interface ??
Merci d'avance

5 réponses

Avatar
James RAVAILLE
Bonjour,

Voici mon avis :

--> Les interfaces et les classes abstraites sont des types de données. Il
n'est pas possible de créer des objets avec ces classes.


--> Une interface contient une liste de méthodes non implémentées. Charges
aux classes qui implémentent ces interfaces d'implémenter ces méthodes. Les
interfaces exposent alors des attributs et des méthodes d'une classe. La
classe peut posséder d'autres attributs et méthodes, qui ne pourront être
utilisées par les objets manipulant les objets créés à partir de
l'interface.
Une interface peut être implémentée par plusieurs classes.
Les interfaces peuvent aussi servir de contrat entre deux composants (au
sens assemblies). C'est-à-dire qu'un composant peut utiliser des méthodes
sur des objets, sans savoir comment ces méthodes ont été implémentées...
Les interfaces peuvent hériter entre elles. Alors une classe C qui
implémente une interface B qui elle-même hérite de l'interface A, devra
implémenter les méthodes visibles dans B, avec celles héritées de A.


--> Les classes abstraites sont des classes contenant des méthodes
abstraites, et des méthodes non abstraites (implémentées). Une méthode
abstraite est une méthode qui ne possède pas d'implémentation. Seule la
signature de la méthode est fournie. Une classe abstraite possède des
classes dérivées (cf : héritage). L'implémentation de la méthode abstraite
devra être effectuée dans les classes héritant de la classe abstraite. Dans
la modélisation, les classes abstraites sont généralement comme des
"classes-mères", des modèles de classes...
Dans le développement objet avec .NET les classes abstraites sont uniquement
des types d'objets. Elles ne peuvent être instanciées. Lors de l'appel de la
méthode sur un objet du type de la classe abstraite, la méthode exacte
appelée sera fonction de la classe dérivée, ayant été utilisée pour créer
cet objet.




Cordialement,

--
James RAVAILLE.
MCAD .NET et MCT .NET
http://www.certifdotnet.com


"Titeuf" a écrit dans le message de news:
%
Bonsoir,
Quelle est la différence entre une classe abstraite et une interface ??
Merci d'avance



Avatar
Titeuf
Merci pour ces explications !!
Avatar
James RAVAILLE
De rien...


Cordialement,

James RAVAILLE.
MCAD .NET et MCT .NET
http://www.certifdotnet.com

"Titeuf" a écrit dans le message de news:

Merci pour ces explications !!



Avatar
Patrick Philippot
Bonjour,

Quelle est la différence entre une classe abstraite et une interface



En complément:

Une classe peut implémenter autant d'interfaces qu'elle le désire mais
ne peut hériter que d'une seule autre classe. Donc, si on implémente le
polymorphisme via un héritage basé sur une classe abstraite, on
s'interdit toute autre possibilité d'héritage.

Si par contre, on implémente le polymorphisme en se basant sur un
héritage d'interface, l'objet en question peut participer à de nouvelles
relations du type "est-un(e)" sans compromettre les autres. En d'autres
termes, la classe en question peut participer à différents traitements
banalisés sur des classes polymorphes entre elles sur une interface
donnée. C'est beaucoup plus souple et cela génère moins de couplage.

Pendant de nombreuses années, on a confondu en un seul terme (héritage)
2 notions très différentes: héritage d'interface et héritage
d'implémentation. Et on a longtemps dit que le polymorphisme dépendait
de l'héritage d'implémentation. Ce qui est faux.

--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr
Avatar
Titeuf
merci bien pour ce complément !