Polimorfismo y sobrescritura de métodos
Domine el polimorfismo para crear código flexible y reutilizable mediante la sobrescritura de métodos
Polimorfismo y sobrescritura de métodos es una lección gratuita de C# Academy en CoddyKit. Esta es la lección 7 de 7. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de C# Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de C# Academy incluye 7 lecciones en total.
Introducción al polimorfismo
Polimorfismo y sobrescritura de métodos
¡Bienvenido a la siguiente lección! En esta lección, aprenderá sobre el polimorfismo, un concepto esencial de la programación orientada a objetos, y cómo permite sobrescribir métodos para proporcionar código flexible y reutilizable. ¡Comencemos!

¿Qué es el polimorfismo?
¿Qué es el polimorfismo?
El polimorfismo significa «muchas formas» y permite tratar objetos de distintas clases como objetos de una clase base común. Esto aporta flexibilidad y reutilización al código.
Ejemplo: Un método puede comportarse de forma diferente según el tipo de objeto con el que trabaja.
Punto clave: En C#, el polimorfismo se logra mediante la sobrescritura de métodos y las interfaces.
Comprender la sobrescritura de métodos
Comprender la sobrescritura de métodos
La sobrescritura de métodos permite que una clase derivada proporcione una implementación específica de un método que ya está definido en su clase base. Utilice la palabra clave virtual en la clase base y la palabra clave override en la clase derivada. Ejemplo:
Consejo: La sobrescritura de métodos garantiza que se llame al método correcto para un objeto, independientemente de su tipo de referencia.
using System;
class Animal {
public virtual void Speak() {
Console.WriteLine("The animal makes a sound.");
}
}
class Dog : Animal {
public override void Speak() {
Console.WriteLine("The dog barks.");
}
}
class Cat : Animal {
public override void Speak() {
Console.WriteLine("The cat meows.");
}
}
class Program {
static void Main() {
Animal myDog = new Dog();
Animal myCat = new Cat();
myDog.Speak(); // Outputs: The dog barks.
myCat.Speak(); // Outputs: The cat meows.
}
}
Uso del polimorfismo
Uso del polimorfismo
El polimorfismo permite escribir código que funciona con distintos tipos de objetos mediante una interfaz común. Ejemplo:
Punto clave: El polimorfismo permite escribir código más genérico y reutilizable.
using System;
class Animal {
public virtual void Speak() {
Console.WriteLine("The animal makes a sound.");
}
}
class Dog : Animal {
public override void Speak() {
Console.WriteLine("The dog barks.");
}
}
class Cat : Animal {
public override void Speak() {
Console.WriteLine("The cat meows.");
}
}
class Program {
static void Main() {
Animal[] animals = { new Dog(), new Cat() };
foreach (Animal animal in animals) {
animal.Speak(); // Calls the appropriate method for each object
}
}
}
Uso de la palabra clave base al sobrescribir
Uso de la palabra clave base al sobrescribir
La palabra clave base se utiliza para llamar a un método de la clase base desde el método sobrescrito. Ejemplo:
Consejo: Utilice base cuando quiera conservar la funcionalidad de la clase base en un método sobrescrito.
using System;
class Animal {
public virtual void Speak() {
Console.WriteLine("The animal makes a sound.");
}
}
class Dog : Animal {
public override void Speak() {
base.Speak(); // Calls the base class method
Console.WriteLine("The dog barks.");
}
}
class Program {
static void Main() {
Dog myDog = new Dog();
myDog.Speak(); // Outputs: The animal makes a sound. The dog barks.
}
}
Clases y métodos abstractos
Clases y métodos abstractos
Las clases abstractas proporcionan una plantilla para las clases derivadas. Pueden incluir métodos abstractos, que deben sobrescribirse en la clase derivada. Ejemplo:
Punto clave: Los métodos abstractos obligan a las clases derivadas a proporcionar su propia implementación.
using System;
abstract class Animal {
public abstract void Speak(); // Abstract method
}
class Dog : Animal {
public override void Speak() {
Console.WriteLine("The dog barks.");
}
}
class Program {
static void Main() {
Animal myDog = new Dog();
myDog.Speak(); // Outputs: The dog barks.
}
}
Desafío práctico
Desafío práctico
Cree una clase abstracta Shape con un método abstracto CalculateArea(). Derive las clases Rectangle y Circle e implemente en ellas CalculateArea(). Ejemplo:
using System;
abstract class Shape {
public abstract double CalculateArea();
}
class Rectangle : Shape {
public double Width { get; set; }
public double Height { get; set; }
public override double CalculateArea() {
return Width * Height;
}
}
class Circle : Shape {
public double Radius { get; set; }
public override double CalculateArea() {
return Math.PI * Radius * Radius;
}
}
class Program {
static void Main() {
Shape rectangle = new Rectangle { Width = 4, Height = 5 };
Shape circle = new Circle { Radius = 3 };
Console.WriteLine("Rectangle Area: " + rectangle.CalculateArea());
Console.WriteLine("Circle Area: " + circle.CalculateArea());
}
}
Buenas prácticas para el polimorfismo
Buenas prácticas para el polimorfismo
Estas son algunas buenas prácticas:
- Utilice el polimorfismo para simplificar el código y evitar la duplicación.
- Sobrescriba únicamente los métodos que requieran un comportamiento específico en las clases derivadas.
- Utilice clases y métodos abstractos para definir interfaces compartidas por las clases derivadas.
Consejo: El polimorfismo facilita la ampliación y el mantenimiento del código.
¡Excelente trabajo!
¡Excelente trabajo!
¡Enhorabuena! Ha aprendido a utilizar el polimorfismo y la sobrescritura de métodos para escribir código flexible y reutilizable. En la siguiente lección, explorará el trabajo con interfaces para lograr abstracción e implementar varios comportamientos. ¡Sigamos programando!

Preguntas frecuentes
¿La lección «Polimorfismo y sobrescritura de métodos» es gratis?
Sí — el texto completo de «Polimorfismo y sobrescritura de métodos» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de C# Academy, actualiza a CoddyKit PRO. El curso de C# Academy incluye 7 lecciones en total.
¿Qué aprenderé en «Polimorfismo y sobrescritura de métodos»?
Domine el polimorfismo para crear código flexible y reutilizable mediante la sobrescritura de métodos Practicas C# Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar C# Academy?
No se requiere experiencia previa. C# Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 7 de 7.
¿Cuánto tiempo toma la lección «Polimorfismo y sobrescritura de métodos»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de C# Academy?
Sí. Cada lección de C# Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- ¿Qué es la programación orientada a objetos?
- Definir clases y objetos
- Comprender las propiedades y los métodos
- Constructores en C#
- Encapsulación y modificadores de acceso
- Herencia: reutilización de código
- Polimorfismo y sobrescritura de métodos