Pourquoi et quand utiliser le polymorphisme?

Je suis nouveau à la programmation orientée objet et le polymorphisme m'a donné un moment difficile:

class Animal
{
    public virtual void eat()
    {
        Console.Write("Animal eating");
    }
}
class Dog : Animal
{
    public override void eat()
    {
        Console.Write("Dog eating");
    }
}
class Program
{
    public void Main()
    {
        Animal dog = new Dog();
        Animal generic = new Animal();
        dog.eat();
        generic.eat();
    }
}

De sorte que les impressions

Dog eating
Animal eating

Mais pourquoi ne pas simplement utiliser la fonction de Chien de type, au lieu d'animaux, comme le Chien chien = new Chien()? Je suppose que c'est pratique lorsque vous savez que l'objet est un animal, mais ne sais pas quel genre d'animal qu'il est. Veuillez l'expliquer à moi.

Grâce

Le mieux que je puisse dire, c'est que maintenant, vous savez quand vous en avez besoin. Et je souhaite qu'ils utilisés de meilleurs exemples.
Je pense que vous avez déjà eu l'idée de comment l'utiliser et ce polymorphisme n'. Maintenant, je tiens à mentionner, si c'était seulement de dire à quel genre d'animal, un objet représente, vous avez une propriété Kind et l'utiliser. En fait, vous ne devriez pas créer une classe pour chaque type de chose que vous avez... pour exemple la classe Car, avec les classes dérivées comme RedCar, PurpleCar, VioletCar, BlueCar, et ainsi de suite pour chaque couleur, est quelque chose d'à peine utile. Il suffit d'ajouter une Color de la propriété et de l'utilisation que.

OriginalL'auteur lombardo2 | 2012-10-06