C# orientado a objetos

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

C#
Ejecutar código →
Program.cs
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}");
    }
}
Resultado de la ejecución
12.57
9.00

Practica con el depurador

Pon un punto de interrupción en una asignación o condición importante, pulsa Debug y revisa los valores locales antes de pasar a la siguiente línea.

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