Introduction au C# 
Héritage - Polymorphisme - Interface 
M. DIENG Abdoulaye
Sommaire 
2 
1. Héritage 
2. Constructeurs et héritage 
3. Redéfinition de méthodes 
4. Polymorphisme 
5. Classe abstraite...
Héritage 
• À la différence de C++ : pas d’héritage multiple 
• Syntaxe 
class NomClasseFille : NomClasseMere{ 
// Déclara...
Constructeurs et héritage 
• Le constructeur de la classe de base est appelé avant le 
constructeur de la classe dérivée. ...
Redéfinition de méthodes 
• Une sous-classe peut redéfinir les méthodes héritées pour 
leur fournir des implémentations sp...
Polymorphisme 
• Le polymorphisme désigne la faculté pour une référence, un 
opérateur ou une méthode de se comporter diff...
Classe abstraite 
• Pb : certaines méthodes sont « trop » générales pour pouvoir 
être implémentées. 
Exemple : un cercle ...
Interface 
• Interface = ensemble de méthodes sans implémentation 
• Déclaration : interface INomInterface{…} 
• Dans la d...
Prochain SlideShare
Chargement dans…5
×

Csharp3 heritage-polymorphisme-interface

441 vues

Publié le

Csharp3 heritage-polymorphisme-interface

Publié dans : Logiciels
0 commentaire
1 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
441
Sur SlideShare
0
Issues des intégrations
0
Intégrations
3
Actions
Partages
0
Téléchargements
0
Commentaires
0
J’aime
1
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Csharp3 heritage-polymorphisme-interface

  1. 1. Introduction au C# Héritage - Polymorphisme - Interface M. DIENG Abdoulaye
  2. 2. Sommaire 2 1. Héritage 2. Constructeurs et héritage 3. Redéfinition de méthodes 4. Polymorphisme 5. Classe abstraite 6. Interface
  3. 3. Héritage • À la différence de C++ : pas d’héritage multiple • Syntaxe class NomClasseFille : NomClasseMere{ // Déclaration des nouveaux attributs // Définition des nouvelles méthodes // Redéfinition de méthodes ... } • Exemple (Un rectangle coloré est un rectangle) class RectangleCol : Rectangle{ int couleur; ... } 3 app1
  4. 4. Constructeurs et héritage • Le constructeur de la classe de base est appelé avant le constructeur de la classe dérivée. • Syntaxe du constructeur d’une sous classe NomClasseFille(<parametres>) // appel du constructeur de la mère : base(<arguments>) { // autres opérations } 4 app2
  5. 5. Redéfinition de méthodes • Une sous-classe peut redéfinir les méthodes héritées pour leur fournir des implémentations spécifiques • Exemple : on démarre une voiture électrique en activant un disjoncteur • On redéfinit une méthode, en utilisant le mot clé new. • Syntaxe : [accès] new typeRslt nomMethode([args]){…} • L’accès de la méthode de base doit être conservée • Le code d’une méthode redéfinie peut appeler la méthode de la classe mère à l’aide du mot clé base. • Syntaxe : base.nomMethode([args]) 5 app3
  6. 6. Polymorphisme • Le polymorphisme désigne la faculté pour une référence, un opérateur ou une méthode de se comporter différemment suivant le contexte • Le polymorphisme permet d'utiliser le type réel de l'objet référencé plutôt que le type de la référence pour déterminer la méthode ou la propriété à utiliser • Comme C++, C# utilise par défaut la liaison statique • Pour une liaison dynamique : – comme en C++, utiliser le mot clé virtual dans la déclaration de la méthode de la classe de base. – remplacer new par override dans une classe dérivée 6 app4
  7. 7. Classe abstraite • Pb : certaines méthodes sont « trop » générales pour pouvoir être implémentées. Exemple : un cercle et un rectangle ont tous une aire, mais la méthode de calcul est différente d’une figure à l’autre. • Solution : déclarer la méthode aire() dans la classe parente Figure sans lui donner d’implémentation. • Déclaration d’une méthode abstraite ou virtuelle pure : accès abstract typeRetour nomMéthode([arg]); • L’accès à une méthode abstraite n’est jamais privé et se conserve lors de l’implémentation • Classe abstraite : contient au moins une méthode abstraite • Déclaration d’une classe abstraite : abstract class nomClasse {…} • Une classe abstraite ne doit pas être instanciée. 7 app5
  8. 8. Interface • Interface = ensemble de méthodes sans implémentation • Déclaration : interface INomInterface{…} • Dans la déclaration des méthodes d’une interface : – pas de qualificatif d’accès – nom de tout éventuel argument • Une classe peut implémenter plusieurs interfaces Syntaxe : class NomClasse : INomInt1[,INomInt2, …]{…} • Toute classe non abstraite qui implémente une interface doit implémenter toutes les méthodes proposées • Une classe qui implémente une interface peut avoir ses propres méthodes. • Une interface peut hériter d'une autre interface. 8 app6

×