using System;
namespace Example58
{
abstract class Animal
{
private string name;
public Animal(string name)
{
this.name = name;
}
public abstract string Speak();
public string Name
{
get { return name; }
}
}
class Dog : Animal
{
public Dog(string name) : base(name)
{
}
public override string Speak()
{
return "Woof, woof";
}
public override string ToString()
{
return Name;
}
}
class Cat : Animal
{
public Cat(string name) : base(name)
{
}
public override string ToString()
{
return Name;
}
public override string Speak()
{
return "Meow, meow";
}
}
///
/// Summary description for Class1.
///
class Class1
{
///
/// The main entry point for the application.
///
[STAThread]
static void Main(string[] args)
{
Animal spot = new Dog("Spot");
Animal puff = new Cat("Puff");
Console.WriteLine(spot + " " + spot.Speak());
Console.WriteLine(puff + " " + puff.Speak());
}
}
}