|
Exemple 12-16 extrait du chapitre
Héritage/dérivation polymorphisme et abstraction
Exemple 12-15< > Exemple 13-1
Cet exemple peut être compilé avec la ligne de commande: csc.exe /target:exe Exemple_12_16.cs Erreurs: 0 Avertissements: 0 Remarque:
Exemple_12_16.cs
using System;
interface IA { void f(int i); }
interface IB { void g(int i); }
abstract class FooBase { public abstract void h(int i); }
class FooDeriv : FooBase, IA {
public void f(int i) { /*...*/ }
public override void h(int i){ /*...*/ }
}
class Program {
static void Main() {
IA refA = new FooDeriv();
IB refB = null;
FooBase refAbst = null;
FooDeriv refDeriv = null;
// Ici, le transtypage peut se faire.
refAbst = refA as FooBase;
if ( refAbst != null ) {
// utilise refAbst...
}
// Ici, le transtypage peut se faire.
refDeriv = refA as FooDeriv;
if ( refDeriv != null ) {
// utilise refC...
}
// Ici, le transtypage ne peut pas se faire.
refB = refA as IB;
if ( refB != null ) {
// utilise refB...
}
}
}
Copyright Patrick Smacchia 2006 2007
|