static void Main() { Base derivedNewAbstract = new DerivedNew(); Base derivedOverridenAbstract = new DerivedOverriden(); derivedNewAbstract.IdentifyYourself(); // prints Based i here derivedOverridenAbstract.IdentifyYourself(); // prints DerivedOverriden is here DerivedNew derivedNew = new DerivedNew(); DerivedOverriden derivedOverriden = new DerivedOverriden(); derivedNew.IdentifyYourself(); // prints DerivedNew is here derivedOverriden.IdentifyYourself(); // prints DerivedOverriden is here }