class Dog { } class BullDog : Dog { } class Program { static void Main() { Dog dog2 = new BullDog(); BullDog dog3 = new BullDog(); } } >
You don't need Dog dog2 = new BullDog(), you will be able to pass your BullDog to any method expecting a Dog.
Dog dog2 = new BullDog()
BullDog
Dog
Take a look at http://en.wikipedia.org/wiki/Polymorphism_in_object-oriented_programming