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
|