fork download
  1. using System;
  2.  
  3. public abstract class Figura
  4. {
  5. private string idFigura;
  6.  
  7. public Figura (string idFigura)
  8. {
  9. IdFigura = idFigura; // asigna el valor de idFigura a la propiedad IdFigura
  10. }
  11.  
  12. public string IdFigura
  13. {
  14. get
  15. {
  16. return idFigura;
  17. }
  18. set
  19. {
  20. idFigura = value;
  21. }
  22. }
  23.  
  24. // La propiedad Area es de sólo-lectura
  25. public abstract double Area
  26. {
  27. get;
  28. }
  29.  
  30. public override string ToString ()
  31. {
  32. return IdFigura + " Área = " + string.Format("{0:F2}",Area);
  33. }
  34. }
  35.  
  36. public class Cuadrado : Figura
  37. {
  38. private int lado;
  39.  
  40. public Cuadrado (int lado, string idFigura) : base (idFigura)
  41. {
  42. this.lado = lado;
  43. }
  44.  
  45. public override double Area
  46. {
  47. get
  48. {
  49. return lado * lado;
  50. }
  51. }
  52. }
  53.  
  54. public class Circulo : Figura
  55. {
  56. private int radio;
  57.  
  58. public Circulo (int radio, string idFigura) : base (idFigura)
  59. {
  60. this.radio = radio;
  61. }
  62.  
  63. public override double Area
  64. {
  65. get
  66. {
  67. return radio * radio * Math.PI;
  68. }
  69. }
  70. }
  71.  
  72. public class Rectangulo : Figura
  73. {
  74. private int ancho;
  75. private int alto;
  76.  
  77. public Rectangulo (int ancho, int alto, string idFigura) : base (idFigura)
  78. {
  79. this.ancho = ancho;
  80. this.alto = alto;
  81. }
  82.  
  83. public override double Area
  84. {
  85. get
  86. {
  87. return ancho * alto;
  88. }
  89. }
  90. }
  91.  
  92. public class PruebaFigura
  93. {
  94. public static void Main ()
  95. {
  96. Figura[] figuras =
  97. {
  98. new Cuadrado (5, "Cuadrado #1"),
  99. new Circulo (3, "Círculo #1"),
  100. new Rectangulo (4, 5, "Rectángulo #1")
  101. };
  102.  
  103. Console.WriteLine ("Colección de Figuras");
  104.  
  105. foreach (Figura figura in figuras)
  106. {
  107. Console.WriteLine (figura.ToString());
  108. }
  109. }
  110. }
Success #stdin #stdout 0.04s 33736KB
stdin
stdout
Colección de Figuras
Cuadrado #1 Área = 25.00
Círculo #1 Área = 28.27
Rectángulo #1 Área = 20.00