using System.Collections.Generic;
public Dog(string _name, string _breed) :
public override void Introduce()
Console.WriteLine("dog.");
public Cat(string _name, string _breed) :
public override void Introduce()
Console.WriteLine("cat.");
public abstract class Pet
protected string Name { get; set; }
protected string Breed { get; set; }
public Pet(string _name, string _breed)
public virtual void Introduce()
Console.Write(string.Format("I'm {0} of {1}. I'm a ", Name, Breed));
private List<Pet> petCollection = new List<Pet>();
public void AddPet(Pet pet)
public void IntroduceAll()
petCollection.ForEach(p => p.Introduce());
public static void Main()
Cat cat1 = new Cat("name1", "breed1");
Cat cat2 = new Cat("name2", "breed2");
Cat cat3 = new Cat("name3", "breed1");
Cat cat4 = new Cat("name4", "breed2");
Dog dog1 = new Dog("name1", "breed1");
Dog dog2 = new Dog("name2", "breed2");
Dog dog3 = new Dog("name3", "breed1");
Dog dog4 = new Dog("name4", "breed2");
PetShop newPetshop = new PetShop();
newPetshop.IntroduceAll();