Home
Browsez les 647 exemples
Téléchargez les 647 exemples
Téléchargez des chapitres
Achetez sur amazon.fr

Niveau: Débutant/Intermédiaire
ISBN-2-84177-339-6
50 Euros

Exemple 12-4 extrait du chapitre Héritage/dérivation polymorphisme et abstraction


Exemple 12-3<     > Exemple 12-5


Cet exemple peut être compilé avec la ligne de commande:
csc.exe /target:exe Exemple_12_4.cs
Erreurs: 1 Avertissements: 0
Remarque:


Exemple_12_4.cs
class Point{
   public Point (int x,int y){this.x = x;this.y = y;}
   int x; int y;
}
abstract class FigureGeometrique{
   // On vérifie qu'une méthode abstraite n'a pas de corps.
   public abstract void Dessine(); 
}
class Cercle : FigureGeometrique {
   private    Point    m_Centre;
   private    double    m_Rayon;
   public Cercle(Point centre, double rayon) {
      m_Centre = centre;
      m_Rayon  = rayon;
   }
   public override void Dessine (){
      // Dessine un Cercle à partir de son centre et de son rayon.
   }
}
class Rectangle : FigureGeometrique {
   private Point m_Sommet1;
   private Point m_Sommet2;
   private Point m_Sommet3;
   public Rectangle(Point s1, Point s2, Point s3 ) {
      m_Sommet1 = s1; m_Sommet2 = s2; m_Sommet3 = s3;
   }
   public override void Dessine (){
      // Dessine un Rectangle à partir de trois de ses sommets.
   }
}
class Program {   
   static void Main() {
      FigureGeometrique[] tableau = new FigureGeometrique[3];
      tableau [0= new Cercle(new Point(0,0),3.2);
      tableau [1= new Rectangle(
                        new Point(0,0),new Point(0,2),new Point(1,2));
      tableau [2= new Cercle(new Point(1,1),4.1);
      // Le polymorphisme s'applique à l'appel 
      // de la méthode abstraite Dessine().
      foreach(FigureGeometrique f in tableau )
         f.Dessine();
      // Erreur de compilation !
      // On ne peut instancier une classe abstraite !
      FigureGeometrique figure = new FigureGeometrique(); 
   }
}	
Copyright Patrick Smacchia 2006 2007