Add object in a hierarchy into a generic Collection

   
  


using System;
using System.Collections.ObjectModel;
using System.Collections.Generic;
using System.Text;

public class Chicken : Animal {
    public void LayEgg() {
        Console.WriteLine("{0} Animal.", name);
    }

    public Chicken(string newName)
        : base(newName) {
    }
}

public class Cow : Animal {
    public void Milk() {
        Console.WriteLine("{0} cow.", name);
    }

    public Cow(string newName)
        : base(newName) {
    }
}

public abstract class Animal {
    protected string name;

    public string Name {
        get {
            return name;
        }
        set {
            name = value;
        }
    }

    public Animal() {
        name = "animal";
    }

    public Animal(string newName) {
        name = newName;
    }

    public void Feed() {
        Console.WriteLine("{0} is feeding.", name);
    }
}

class Program {
    static void Main(string[] args) {
        Collection<Animal> animalCollection = new Collection<Animal>();
        animalCollection.Add(new Cow("A"));
        animalCollection.Add(new Chicken("B"));
        foreach (Animal myAnimal in animalCollection) {
            myAnimal.Feed();
        }
    }
}

   
     


This entry was posted in Generics. Bookmark the permalink.