/* Inheritence in c# with a pure virtual function. Known in C# as an abstract method. */ public abstract class Name { protected string m_sName; public abstract void Say(); public Name() { m_sName = "Base"; Console.WriteLine("{0} is born.", m_sName); } ~Name() { Console.WriteLine("{0} is dead.", m_sName); } } class Fred : Name { public override void Say() { Console.WriteLine("My namespace is: {0}",m_sName); } public Fred() { m_sName = "Fred"; Console.WriteLine("{0} is born.",m_sName); } ~Fred() { Console.WriteLine("{0} is dead.",m_sName); } } public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { Name n = new Fred(); n.Say(); } }