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
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.00Esercitati con il debugger
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