class ChainedIs { interface Animal { void Speak(); } class Cat : Animal { public void Speak() { Console.WriteLine("Miaow!"); } } class Dog : Animal { public void Speak() { Console.WriteLine("Woof!"); } } public static void Main(string[] args) { List animals = new List { new Cat(), new Dog() }; foreach (var a in animals) a.Speak(); } }