fork download
  1. using System;
  2.  
  3. class PruebaHerenciaFigura
  4. {
  5. public class Figura
  6. {
  7. public const double PI = Math.PI;
  8. protected double x, y;
  9.  
  10. public Figura ()
  11. {
  12. }
  13.  
  14. public Figura (double x, double y)
  15. {
  16. this.x = x;
  17. this.y = y;
  18. }
  19.  
  20. public virtual double Area ()
  21. {
  22. return x * y;
  23. }
  24. }
  25.  
  26. public class Circulo : Figura
  27. {
  28. public Circulo (double r) : base (r, 0)
  29. {
  30. }
  31.  
  32. public override double Area ()
  33. {
  34. return PI * x * x;
  35. }
  36. }
  37.  
  38. public class Esfera : Figura
  39. {
  40. public Esfera (double r) : base (r, 0)
  41. {
  42. }
  43.  
  44. public override double Area ()
  45. {
  46. return 4 * PI * x * x;
  47. }
  48. }
  49.  
  50. public class Cilindro : Figura
  51. {
  52. public Cilindro (double r, double h) : base (r, h)
  53. {
  54. }
  55.  
  56. public override double Area ()
  57. {
  58. return 2 * PI * x * x + PI + x + y;
  59. }
  60. }
  61.  
  62. public static void Main ()
  63. {
  64. double r = 7.0, h = 11.0;
  65.  
  66. Figura[] figuras = new Figura[3];
  67.  
  68. figuras[0] = new Circulo (r);
  69. figuras[1] = new Esfera (r);
  70. figuras[2] = new Cilindro (r, h);
  71.  
  72. // Muestra resultados.
  73. // La invocaciön del método Area ocurre polimófircamente
  74. Console.WriteLine ("Área del círculo: {0:F2}", figuras[0].Area ());
  75. Console.WriteLine ("Área de la esfera: {0:F2}", figuras[1].Area ());
  76. Console.WriteLine ("Área del cilindro: {0:F2}", figuras[2].Area ());
  77. }
  78. }
Success #stdin #stdout 0.03s 33920KB
stdin
Standard input is empty
stdout
Área del círculo: 153.94
Área de la esfera: 615.75
Área del cilindro: 329.02