Though i'm not sure what the question is i'll give it a try anyway;
If you create a new Dog dog you can pass the dog to any other method as a Animal thus
Public void DoSomething(Animal animal)
{
...
}
Then when you actually go and do something with the animal (damn that sounds dirty) all you have to do is
Dog dog = animal as Dog;
if(null != dog)
{
Console.WriteLine("this is a real dog")
...
It would even be better if you'd make a Animal interface and pass that to the user method.
Hope this helps, AT