C# orientado a objetos

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

C#
Rodar 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 da execução
12.57
9.00

Pratique com o depurador

Coloque um breakpoint em uma atribuição ou condição importante, clique em Debug e veja os valores das variáveis locais antes de passar para a próxima linha.

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