Polimorfismo em C#
Nesta lição, você vai usar polimorfismo para chamar o mesmo método em vários tipos de formas por meio de um tipo comum.
Introdução
O polimorfismo (polymorphism) permite trabalhar com vários tipos de objeto por meio de um tipo comum, sem precisar de if para verificar cada tipo. Cada tipo de objeto decide como executar o próprio método.
A classe abstrata Shape declara o método Area() sem implementá-lo, e Circle e Square implementam cada uma o próprio cálculo de área com override. Mesmo com a variável shape do laço tendo o tipo comum Shape, o programa chama a versão certa de cada objeto durante a execução, resultando em 12.57 e 9.00.
Exemplo de C# executável
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.00Pratique com o depurador
Pratique com um desafio
Use o conteúdo desta lição para resolver um problema real. Cada desafio roda no navegador, com testes instantâneos e uma revisão por IA.
Todos os desafios