class GraphicsDevice: IGraphicsDevice {
Console.WriteLine("GraphicsDevice.DoWork()");
interface IGraphicsDevice {
class MyDevice: GraphicsDevice, IGraphicsDevice {
public new void DoWork() {
Console.WriteLine("MyDevice.DoWork()");
static void Main(string[] args) {
IGraphicsDevice real = new GraphicsDevice();
var myObj = new MyDevice();
GraphicsDevice myCastedToBase = myObj;
IGraphicsDevice my = myCastedToBase;
Console.Write("Using real GraphicsDevice: ");
Console.Write("Using overriden GraphicsDevice: ");