title: C# process terminated due to StackOverflowException
body: <p>I'm trying to make this program and after the first output I get the message presented on the image. I’ve   searched around the web and cannot find a way to solve the problem.  Some parts of the program are written in Spanish because y study in a Latin country if any translation is needed please ask.  Any help is much appreciated</p>
  
  <p><a href="http://i.stack.imgur.com/F9DTE.png" rel="nofollow">http://i.stack.imgur.com/F9DTE.png</a></p>
  
  <pre><code>using System;
  
  class Persona
  {
      protected string nombre;
      protected string segsoc;
      public Persona()
      {
          nombre = "";
          segsoc = "";
          Console.WriteLine("Objeto Persona construido.");
      }
      ~Persona()
      {
          Console.WriteLine("Objeto Persona destruido.");
      }
  }
  
  class Empleado : Persona
  {
      private double laPagaHora;
      private double lasHoras;
      public new string nombre
      {
          get
          {
              return nombre;
          }
          set
          {
              nombre = value;
          }
      }
      public new string segsoc
      {
          get
          {
              return segsoc;
          }
          set
          {
              segsoc = value;
          }
      }
      public double pagaHora
      {
          get
          {
              return laPagaHora;
          }
          set
          {
              laPagaHora = value;
          }
      }
      public double horas
      {
          get
          {
              return lasHoras;
          }
          set
          {
              this.lasHoras = value;
          }
      }
      public double paga
      {
          get
          {
              return laPagaHora * lasHoras;
          }
      }
      public Empleado()
      {
          Console.WriteLine("Objeto Empleado construido.");
      }
      ~Empleado()
      {
          Console.WriteLine("Objeto Empleado destruido.");
      }
  }
  
  class Demo
  {
      private static void Main()
      {
          Empleado empleado = new Empleado();
          Console.WriteLine("\nEntre los datos siguientes.");
          Console.Write("Nombre: ");
          empleado.nombre = Console.ReadLine();
          Console.Write("Seguro social: ");
          empleado.segsoc = Console.ReadLine();
          Console.Write("Paga por hora: ");
          empleado.pagaHora = double.Parse(Console.ReadLine());
          Console.Write("Horas trabajadas: ");
          empleado.horas = double.Parse(Console.ReadLine());
          Console.WriteLine("\n--- Datos del empleado ---");
          Console.WriteLine("Nombre: " + empleado.nombre);
          Console.WriteLine("Seguro social: " + empleado.segsoc);
          Console.WriteLine("Paga por hora: {0:C}", empleado.pagaHora);
          Console.WriteLine("Horas trabajadas: " + empleado.horas);
          Console.WriteLine("Paga: {0:C}", empleado.paga);
          Console.WriteLine();
          Console.Write("Press 'Enter' to finish...");
          Console.ReadLine();
      }
  }
  </code></pre>