using System;
class Véhicule
{
}
class Voiture : Véhicule
class UsineVéhicule
public Véhicule Fabriquer()
System.Console.WriteLine("Vehicle");
return new Véhicule();
class UsineVoiture : UsineVéhicule
public new Voiture Fabriquer()
System.Console.WriteLine("Voiture");
return new Voiture();
public class Program
public static void Main()
UsineVéhicule v; // Type apparent
v = new UsineVoiture(); // Type réel
Voiture veh = v.Fabriquer();