El polimorfismo en C#
En esta lección vas a usar el polimorfismo para llamar al mismo método en varios tipos de figuras a través de un tipo común.
Introducción
El polimorfismo (polymorphism) permite manejar varios tipos de objetos a través de un tipo común, sin usar if para comprobar cada tipo. Cada tipo de objeto decide por sí mismo cómo ejecutar su método.
La clase abstracta Shape declara el método Area() sin implementarlo, y Circle y Square implementan cada una su propio cálculo del área con override. Aunque la variable shape del bucle tiene el tipo común Shape, al ejecutar el programa se llama a la versión correcta de cada objeto, lo que da 12.57 y 9.00.
Ejemplo de C# ejecutable
using System;
abstract class Shape { public abstract double Area(); }
class Circle(double radius) : Shape { public override double Area() => Math.PI * radius * radius; }
class Square(double side) : Shape { public override double Area() => side * side; }
class Program
{
static void Main()
{
Shape[] shapes = { new Circle(2), new Square(3) };
foreach (Shape shape in shapes) Console.WriteLine($"{shape.Area():F2}");
}
}
12.57
9.00Practica con el depurador
Practica con un reto
Usa lo que cubre esta lección para resolver un problema real. Cada reto se ejecuta en el navegador, con pruebas al instante y una revisión de IA.
Todos los retos