SlideShare una empresa de Scribd logo
1 de 8
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 
6. Interface
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
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
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
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
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
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

Más contenido relacionado

La actualidad más candente

Chapitre 4 heritage et polymorphisme
Chapitre 4 heritage et polymorphismeChapitre 4 heritage et polymorphisme
Chapitre 4 heritage et polymorphismeAmir Souissi
 
Chapitre 5 classes abstraites et interfaces
Chapitre 5  classes abstraites et interfacesChapitre 5  classes abstraites et interfaces
Chapitre 5 classes abstraites et interfacesAmir Souissi
 
Chap 03 poo en java partie1
Chap 03 poo en java partie1Chap 03 poo en java partie1
Chap 03 poo en java partie1Yassine Badri
 
c# programmation orientée objet (Classe & Objet)
c# programmation orientée objet (Classe & Objet)c# programmation orientée objet (Classe & Objet)
c# programmation orientée objet (Classe & Objet)Mahfoud EL HOUDAIGUI
 
Chapitre 2 classe et objet
Chapitre 2   classe et objetChapitre 2   classe et objet
Chapitre 2 classe et objetAmir Souissi
 
Une introduction à Javascript et ECMAScript 6
Une introduction à Javascript et ECMAScript 6Une introduction à Javascript et ECMAScript 6
Une introduction à Javascript et ECMAScript 6Jean-Baptiste Vigneron
 
Programmation orientée objet avancée
Programmation orientée objet avancéeProgrammation orientée objet avancée
Programmation orientée objet avancéeMahfoud EL HOUDAIGUI
 
Chapitre 4 persistance des donnees
Chapitre 4  persistance des donneesChapitre 4  persistance des donnees
Chapitre 4 persistance des donneesAmir Souissi
 
Fondamentaux java
Fondamentaux javaFondamentaux java
Fondamentaux javaInes Ouaz
 
Chapitre 3 elements de base de java
Chapitre 3  elements de base de javaChapitre 3  elements de base de java
Chapitre 3 elements de base de javaAmir Souissi
 
Chap 03 poo en java partie2
Chap 03 poo en java partie2Chap 03 poo en java partie2
Chap 03 poo en java partie2Yassine Badri
 
Java chap 04 surcharge des méthodes [mode de compatibilité]
Java chap 04 surcharge des méthodes [mode de compatibilité]Java chap 04 surcharge des méthodes [mode de compatibilité]
Java chap 04 surcharge des méthodes [mode de compatibilité]Yassine Badri
 
Cours java smi 2007 2008
Cours java smi 2007 2008Cours java smi 2007 2008
Cours java smi 2007 2008Khalil Lechheb
 
Introspection reflection
Introspection reflectionIntrospection reflection
Introspection reflectionEric Toguem
 
Formation C# - Cours 3 - Programmation objet
Formation C# - Cours 3 - Programmation objetFormation C# - Cours 3 - Programmation objet
Formation C# - Cours 3 - Programmation objetkemenaran
 

La actualidad más candente (19)

Chapitre 4 heritage et polymorphisme
Chapitre 4 heritage et polymorphismeChapitre 4 heritage et polymorphisme
Chapitre 4 heritage et polymorphisme
 
Csharp2014
Csharp2014Csharp2014
Csharp2014
 
Chapitre 5 classes abstraites et interfaces
Chapitre 5  classes abstraites et interfacesChapitre 5  classes abstraites et interfaces
Chapitre 5 classes abstraites et interfaces
 
Chap 03 poo en java partie1
Chap 03 poo en java partie1Chap 03 poo en java partie1
Chap 03 poo en java partie1
 
c# programmation orientée objet (Classe & Objet)
c# programmation orientée objet (Classe & Objet)c# programmation orientée objet (Classe & Objet)
c# programmation orientée objet (Classe & Objet)
 
Chapitre 2 classe et objet
Chapitre 2   classe et objetChapitre 2   classe et objet
Chapitre 2 classe et objet
 
Une introduction à Javascript et ECMAScript 6
Une introduction à Javascript et ECMAScript 6Une introduction à Javascript et ECMAScript 6
Une introduction à Javascript et ECMAScript 6
 
Programmation orientée objet avancée
Programmation orientée objet avancéeProgrammation orientée objet avancée
Programmation orientée objet avancée
 
Chapitre 4 persistance des donnees
Chapitre 4  persistance des donneesChapitre 4  persistance des donnees
Chapitre 4 persistance des donnees
 
Introduction à jQuery
Introduction à jQueryIntroduction à jQuery
Introduction à jQuery
 
Fondamentaux java
Fondamentaux javaFondamentaux java
Fondamentaux java
 
Chapitre 3 elements de base de java
Chapitre 3  elements de base de javaChapitre 3  elements de base de java
Chapitre 3 elements de base de java
 
Chap 03 poo en java partie2
Chap 03 poo en java partie2Chap 03 poo en java partie2
Chap 03 poo en java partie2
 
Java chap 04 surcharge des méthodes [mode de compatibilité]
Java chap 04 surcharge des méthodes [mode de compatibilité]Java chap 04 surcharge des méthodes [mode de compatibilité]
Java chap 04 surcharge des méthodes [mode de compatibilité]
 
TD Java POO
TD Java POO TD Java POO
TD Java POO
 
Introduction à Python
Introduction à PythonIntroduction à Python
Introduction à Python
 
Cours java smi 2007 2008
Cours java smi 2007 2008Cours java smi 2007 2008
Cours java smi 2007 2008
 
Introspection reflection
Introspection reflectionIntrospection reflection
Introspection reflection
 
Formation C# - Cours 3 - Programmation objet
Formation C# - Cours 3 - Programmation objetFormation C# - Cours 3 - Programmation objet
Formation C# - Cours 3 - Programmation objet
 

Destacado

Formation C# - Cours 2 - Programmation procédurale
Formation C# - Cours 2 - Programmation procéduraleFormation C# - Cours 2 - Programmation procédurale
Formation C# - Cours 2 - Programmation procéduralekemenaran
 
Formation C# - Cours 1 - Introduction, premiers pas, concepts
Formation C# - Cours 1 - Introduction, premiers pas, conceptsFormation C# - Cours 1 - Introduction, premiers pas, concepts
Formation C# - Cours 1 - Introduction, premiers pas, conceptskemenaran
 
Formation C# - Cours 4
Formation C# - Cours 4Formation C# - Cours 4
Formation C# - Cours 4kemenaran
 
EUROPAGES Brochure de Vente 2012 - français
EUROPAGES Brochure de Vente 2012 - françaisEUROPAGES Brochure de Vente 2012 - français
EUROPAGES Brochure de Vente 2012 - françaisEUROPAGES
 
Listes élections Alpes-maritimes
Listes élections Alpes-maritimesListes élections Alpes-maritimes
Listes élections Alpes-maritimesLECREURER
 
Les indicateurs Mesure & Analyse
Les indicateurs Mesure & AnalyseLes indicateurs Mesure & Analyse
Les indicateurs Mesure & AnalyseOlivier Pinette
 
Steven Le Gouill : Mieux comprendre la cellule lymphomateuse pour mieux la co...
Steven Le Gouill : Mieux comprendre la cellule lymphomateuse pour mieux la co...Steven Le Gouill : Mieux comprendre la cellule lymphomateuse pour mieux la co...
Steven Le Gouill : Mieux comprendre la cellule lymphomateuse pour mieux la co...Francelymphomeespoir
 
Tv network systemmmanagementoss-24oct07
Tv network systemmmanagementoss-24oct07Tv network systemmmanagementoss-24oct07
Tv network systemmmanagementoss-24oct07Pascal Flamand
 
Formación productiva en veracruz
Formación productiva en veracruzFormación productiva en veracruz
Formación productiva en veracruzLaura Mendoza
 
La vengeance de mort'omard
La vengeance de mort'omardLa vengeance de mort'omard
La vengeance de mort'omardpapybrico
 
Sport adapt epdf
Sport adapt epdfSport adapt epdf
Sport adapt epdflili El
 
etude de cas metro cerp sujet
etude de cas metro cerp sujetetude de cas metro cerp sujet
etude de cas metro cerp sujetAchraf Ourti
 
Se motiver à travailler n°4
Se motiver à travailler n°4Se motiver à travailler n°4
Se motiver à travailler n°4Helene Weber
 
Songotlleu infantilb 271111
Songotlleu infantilb 271111Songotlleu infantilb 271111
Songotlleu infantilb 271111sdlasalle
 

Destacado (20)

C# langage & syntaxe
C#   langage & syntaxeC#   langage & syntaxe
C# langage & syntaxe
 
Formation C# - Cours 2 - Programmation procédurale
Formation C# - Cours 2 - Programmation procéduraleFormation C# - Cours 2 - Programmation procédurale
Formation C# - Cours 2 - Programmation procédurale
 
Formation C# - Cours 1 - Introduction, premiers pas, concepts
Formation C# - Cours 1 - Introduction, premiers pas, conceptsFormation C# - Cours 1 - Introduction, premiers pas, concepts
Formation C# - Cours 1 - Introduction, premiers pas, concepts
 
Formation C# - Cours 4
Formation C# - Cours 4Formation C# - Cours 4
Formation C# - Cours 4
 
EUROPAGES Brochure de Vente 2012 - français
EUROPAGES Brochure de Vente 2012 - françaisEUROPAGES Brochure de Vente 2012 - français
EUROPAGES Brochure de Vente 2012 - français
 
Listes élections Alpes-maritimes
Listes élections Alpes-maritimesListes élections Alpes-maritimes
Listes élections Alpes-maritimes
 
Les indicateurs Mesure & Analyse
Les indicateurs Mesure & AnalyseLes indicateurs Mesure & Analyse
Les indicateurs Mesure & Analyse
 
Steven Le Gouill : Mieux comprendre la cellule lymphomateuse pour mieux la co...
Steven Le Gouill : Mieux comprendre la cellule lymphomateuse pour mieux la co...Steven Le Gouill : Mieux comprendre la cellule lymphomateuse pour mieux la co...
Steven Le Gouill : Mieux comprendre la cellule lymphomateuse pour mieux la co...
 
Cosquin
CosquinCosquin
Cosquin
 
Tv network systemmmanagementoss-24oct07
Tv network systemmmanagementoss-24oct07Tv network systemmmanagementoss-24oct07
Tv network systemmmanagementoss-24oct07
 
Formación productiva en veracruz
Formación productiva en veracruzFormación productiva en veracruz
Formación productiva en veracruz
 
La vengeance de mort'omard
La vengeance de mort'omardLa vengeance de mort'omard
La vengeance de mort'omard
 
Sport adapt epdf
Sport adapt epdfSport adapt epdf
Sport adapt epdf
 
etude de cas metro cerp sujet
etude de cas metro cerp sujetetude de cas metro cerp sujet
etude de cas metro cerp sujet
 
Comunidades
ComunidadesComunidades
Comunidades
 
Joshua bell violoniste.pps
Joshua bell violoniste.ppsJoshua bell violoniste.pps
Joshua bell violoniste.pps
 
Se motiver à travailler n°4
Se motiver à travailler n°4Se motiver à travailler n°4
Se motiver à travailler n°4
 
1 site1clic
1 site1clic1 site1clic
1 site1clic
 
Songotlleu infantilb 271111
Songotlleu infantilb 271111Songotlleu infantilb 271111
Songotlleu infantilb 271111
 
#1. Coimbra
#1. Coimbra#1. Coimbra
#1. Coimbra
 

Similar a Csharp3 heritage-polymorphisme-interface

Ch4HeritageSMI2015_2016.pptx
Ch4HeritageSMI2015_2016.pptxCh4HeritageSMI2015_2016.pptx
Ch4HeritageSMI2015_2016.pptxRihabBENLAMINE
 
System c eniso_jan_fev_07
System c eniso_jan_fev_07System c eniso_jan_fev_07
System c eniso_jan_fev_07haythem_2015
 
Introduction à scala
Introduction à scalaIntroduction à scala
Introduction à scalaSOAT
 
Javascript un langage supérieur
Javascript un langage supérieurJavascript un langage supérieur
Javascript un langage supérieurFredy Fadel
 
Ch4HeritageSMI2015_2016.pdf
Ch4HeritageSMI2015_2016.pdfCh4HeritageSMI2015_2016.pdf
Ch4HeritageSMI2015_2016.pdfRihabBENLAMINE
 
Héritage dans cpp dev informatique ingenierie
Héritage dans cpp dev informatique ingenierieHéritage dans cpp dev informatique ingenierie
Héritage dans cpp dev informatique ingenierieMohammedAmineELHARCH1
 
UML Part 4- diagrammres de classes et d'objets mansouri
UML Part 4- diagrammres de classes et d'objets mansouriUML Part 4- diagrammres de classes et d'objets mansouri
UML Part 4- diagrammres de classes et d'objets mansouriMansouri Khalifa
 
Interface fonctionnelle, Lambda expression, méthode par défaut, référence de...
Interface fonctionnelle, Lambda expression, méthode par défaut,  référence de...Interface fonctionnelle, Lambda expression, méthode par défaut,  référence de...
Interface fonctionnelle, Lambda expression, méthode par défaut, référence de...MICHRAFY MUSTAFA
 
intro-csharp developement master 2 IF APP
intro-csharp developement master 2 IF APPintro-csharp developement master 2 IF APP
intro-csharp developement master 2 IF APPfrwebhelp
 
chapitre5-Classesabstraitesetinterfaces.pdf
chapitre5-Classesabstraitesetinterfaces.pdfchapitre5-Classesabstraitesetinterfaces.pdf
chapitre5-Classesabstraitesetinterfaces.pdfMoez Moezm
 

Similar a Csharp3 heritage-polymorphisme-interface (20)

De Java à .NET
De Java à .NETDe Java à .NET
De Java à .NET
 
XB-Java.ppt
XB-Java.pptXB-Java.ppt
XB-Java.ppt
 
Cours5-heritage.pptx
Cours5-heritage.pptxCours5-heritage.pptx
Cours5-heritage.pptx
 
Pensez objets avec java
Pensez objets avec javaPensez objets avec java
Pensez objets avec java
 
Ch4HeritageSMI2015_2016.pptx
Ch4HeritageSMI2015_2016.pptxCh4HeritageSMI2015_2016.pptx
Ch4HeritageSMI2015_2016.pptx
 
System c eniso_jan_fev_07
System c eniso_jan_fev_07System c eniso_jan_fev_07
System c eniso_jan_fev_07
 
Introduction à scala
Introduction à scalaIntroduction à scala
Introduction à scala
 
Javascript un langage supérieur
Javascript un langage supérieurJavascript un langage supérieur
Javascript un langage supérieur
 
C#
C#C#
C#
 
Ch4HeritageSMI2015_2016.pdf
Ch4HeritageSMI2015_2016.pdfCh4HeritageSMI2015_2016.pdf
Ch4HeritageSMI2015_2016.pdf
 
Héritage dans cpp dev informatique ingenierie
Héritage dans cpp dev informatique ingenierieHéritage dans cpp dev informatique ingenierie
Héritage dans cpp dev informatique ingenierie
 
Polymorphisme
PolymorphismePolymorphisme
Polymorphisme
 
UML Part 4- diagrammres de classes et d'objets mansouri
UML Part 4- diagrammres de classes et d'objets mansouriUML Part 4- diagrammres de classes et d'objets mansouri
UML Part 4- diagrammres de classes et d'objets mansouri
 
expression lambda
expression lambdaexpression lambda
expression lambda
 
Les Classe en Java
Les Classe en JavaLes Classe en Java
Les Classe en Java
 
Interface fonctionnelle, Lambda expression, méthode par défaut, référence de...
Interface fonctionnelle, Lambda expression, méthode par défaut,  référence de...Interface fonctionnelle, Lambda expression, méthode par défaut,  référence de...
Interface fonctionnelle, Lambda expression, méthode par défaut, référence de...
 
intro-csharp developement master 2 IF APP
intro-csharp developement master 2 IF APPintro-csharp developement master 2 IF APP
intro-csharp developement master 2 IF APP
 
C# 7 - Nouveautés
C# 7 - NouveautésC# 7 - Nouveautés
C# 7 - Nouveautés
 
poo.pdf
poo.pdfpoo.pdf
poo.pdf
 
chapitre5-Classesabstraitesetinterfaces.pdf
chapitre5-Classesabstraitesetinterfaces.pdfchapitre5-Classesabstraitesetinterfaces.pdf
chapitre5-Classesabstraitesetinterfaces.pdf
 

Más de Abdoulaye Dieng

Fondamentaux du Référencement naturel
Fondamentaux du Référencement naturelFondamentaux du Référencement naturel
Fondamentaux du Référencement naturelAbdoulaye Dieng
 
Panorama des Technologies mobiles
Panorama des Technologies mobilesPanorama des Technologies mobiles
Panorama des Technologies mobilesAbdoulaye Dieng
 
Prise en main de WordPress
Prise en main de WordPressPrise en main de WordPress
Prise en main de WordPressAbdoulaye Dieng
 
Fondamentaux d’une API REST
Fondamentaux d’une API RESTFondamentaux d’une API REST
Fondamentaux d’une API RESTAbdoulaye Dieng
 
Introduction à JavaScript
Introduction à JavaScriptIntroduction à JavaScript
Introduction à JavaScriptAbdoulaye Dieng
 
Introduction à React JS
Introduction à React JSIntroduction à React JS
Introduction à React JSAbdoulaye Dieng
 
Initiation à l'algorithmique
Initiation à l'algorithmiqueInitiation à l'algorithmique
Initiation à l'algorithmiqueAbdoulaye Dieng
 
Requêtes HTTP synchrones et asynchrones
Requêtes HTTPsynchrones et asynchronesRequêtes HTTPsynchrones et asynchrones
Requêtes HTTP synchrones et asynchronesAbdoulaye Dieng
 
Introduction à JavaScript
Introduction à JavaScriptIntroduction à JavaScript
Introduction à JavaScriptAbdoulaye Dieng
 
Initiation à l'algorithmique
Initiation à l'algorithmiqueInitiation à l'algorithmique
Initiation à l'algorithmiqueAbdoulaye Dieng
 
Introduction à AngularJS
Introduction à AngularJSIntroduction à AngularJS
Introduction à AngularJSAbdoulaye Dieng
 
Initiation à Express js
Initiation à Express jsInitiation à Express js
Initiation à Express jsAbdoulaye Dieng
 

Más de Abdoulaye Dieng (20)

Introduction à React
Introduction à ReactIntroduction à React
Introduction à React
 
Fondamentaux du Référencement naturel
Fondamentaux du Référencement naturelFondamentaux du Référencement naturel
Fondamentaux du Référencement naturel
 
Introduction à Symfony
Introduction à SymfonyIntroduction à Symfony
Introduction à Symfony
 
Panorama des Technologies mobiles
Panorama des Technologies mobilesPanorama des Technologies mobiles
Panorama des Technologies mobiles
 
Prise en main de WordPress
Prise en main de WordPressPrise en main de WordPress
Prise en main de WordPress
 
Initiation à Bootstrap
Initiation à BootstrapInitiation à Bootstrap
Initiation à Bootstrap
 
Introduction à Laravel
Introduction à LaravelIntroduction à Laravel
Introduction à Laravel
 
Fondamentaux d’une API REST
Fondamentaux d’une API RESTFondamentaux d’une API REST
Fondamentaux d’une API REST
 
Introduction à Angular
Introduction à AngularIntroduction à Angular
Introduction à Angular
 
Introduction à JavaScript
Introduction à JavaScriptIntroduction à JavaScript
Introduction à JavaScript
 
Introduction à React JS
Introduction à React JSIntroduction à React JS
Introduction à React JS
 
Initiation à l'algorithmique
Initiation à l'algorithmiqueInitiation à l'algorithmique
Initiation à l'algorithmique
 
Introduction à Symfony
Introduction à SymfonyIntroduction à Symfony
Introduction à Symfony
 
Initiation à Bootstrap
Initiation à BootstrapInitiation à Bootstrap
Initiation à Bootstrap
 
Requêtes HTTP synchrones et asynchrones
Requêtes HTTPsynchrones et asynchronesRequêtes HTTPsynchrones et asynchrones
Requêtes HTTP synchrones et asynchrones
 
Introduction à JavaScript
Introduction à JavaScriptIntroduction à JavaScript
Introduction à JavaScript
 
Initiation à l'algorithmique
Initiation à l'algorithmiqueInitiation à l'algorithmique
Initiation à l'algorithmique
 
Introduction à HTML 5
Introduction à HTML 5Introduction à HTML 5
Introduction à HTML 5
 
Introduction à AngularJS
Introduction à AngularJSIntroduction à AngularJS
Introduction à AngularJS
 
Initiation à Express js
Initiation à Express jsInitiation à Express js
Initiation à Express js
 

Csharp3 heritage-polymorphisme-interface

  • 1. Introduction au C# Héritage - Polymorphisme - Interface M. DIENG Abdoulaye
  • 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. 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. 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. 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. 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. 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. 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