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();
}
}
}