C# orientato agli oggetti

Il polimorfismo in C#

In questa lezione userai il polimorfismo per chiamare lo stesso metodo su diversi tipi di forme tramite un tipo comune.

Introduzione

Il polimorfismo (polymorphism) permette di lavorare con diversi tipi di oggetti tramite un tipo comune, senza usare if per controllare ogni tipo. Ogni tipo di oggetto decide come eseguire il proprio metodo.

La classe astratta Shape dichiara il metodo Area() senza implementarlo, mentre Circle e Square implementano ciascuna il proprio calcolo dell'area con override. Anche se la variabile shape del ciclo ha il tipo comune Shape, il programma chiama durante l'esecuzione la versione giusta di ogni oggetto, ottenendo 12.57 e 9.00.

Esempio C# eseguibile

C#
Esegui il codice →
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}");
    }
}
Risultato dell'esecuzione
12.57
9.00

Esercitati con il debugger

Metti un breakpoint su un'assegnazione o una condizione importante, fai clic su Debug ed esamina i valori locali prima di passare alla riga successiva.

Esercitati con una sfida

Usa ciò che questa lezione spiega per risolvere un problema reale. Ogni sfida gira nel browser, con test immediati e una revisione dell'IA.

Tutte le sfide