public static void Main()
Cow cow1 = new Cow("Paul");
Console.WriteLine(cow1.MakeNoise());
Console.WriteLine(cow1.ToString());
public abstract class Animal
private int LegCount {get;set;}
private string Name {get;set;}
public Animal(int legCount, string name)
public abstract string MakeNoise();
public virtual string Eat()
public override string ToString()
return string.Format("Animal name: {0} has {1} legs",this.Name, this.LegCount);
public class Cow : Animal, ITryable<Cow>
public Cow(string name) : base(4, name) {}
public override string MakeNoise()
public override string Eat()
public bool CanBeTried(Cow cow)