Dart Academy · Lezione

Polimorfismo tramite tipi condivisi

Programmare rispetto a un tipo, non a una classe.

Lezione 3 di 413 passaggi

Polimorfismo tramite tipi condivisi è una lezione Dart Academy gratuita su CoddyKit. Questa è la lezione 3 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Dart Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Dart Academy include 4 lezioni in totale.

Che cosa significa il polimorfismo

Il polimorfismo consente a un tipo di rappresentarne molti altri. Si chiama un metodo sul tipo condiviso e ogni oggetto risponde a modo proprio.

Programmare rispetto a un tipo

Invece di indicare una classe concreta, si dipende da un supertipo condiviso. Il codice funziona con qualsiasi elemento che rispetti quella struttura.

void render(Shape s) => print(s.area());

Un tipo base condiviso

Si parte da una classe base astratta che dichiara il metodo comune che ogni sottotipo implementerà in modo diverso.

abstract class Shape {
  double area();
}

Molti sottotipi, un'unica struttura

Ogni sottotipo implementa area a modo proprio, ma tutti vengono comunque trattati come uno Shape.

class Circle extends Shape {
  double area() => 28.3;
}

Dispatch dinamico

Durante l'esecuzione Dart sceglie il metodo dell'oggetto reale. Questo dispatch fa sì che la stessa chiamata esegua codice diverso per ogni oggetto.

Shape s = Circle();
s.area(); // runs Circle.area

Una lista di forme diverse

Poiché condividono un tipo, è possibile raccogliere oggetti eterogenei in un unico List e trattarli in modo uniforme.

List<Shape> shapes = [Circle(), Square()];

Iterare in modo polimorfico

Un unico ciclo gestisce ogni forma. Non è mai necessario verificare la classe concreta: viene semplicemente eseguito l'area corretto.

for (var s in shapes) {
  print(s.area());
}

Aperto all'estensione

È possibile aggiungere in seguito un sottotipo Shape completamente nuovo e i cicli esistenti lo utilizzeranno immediatamente. Il polimorfismo mantiene il codice aperto alla crescita.

class Triangle extends Shape {
  double area() => 12.0;
}

Le interfacce funzionano allo stesso modo

I tipi condivisi possono derivare anche da implements. Qualsiasi classe che implementi l'interfaccia si integra direttamente nello stesso codice.

void log(Printable p) => p.printOut();

Nessuna verifica del tipo necessaria

Il buon codice polimorfico usa raramente verifiche is. Il tipo condiviso garantisce già che il metodo esista, mantenendo pulita la logica.

Perché è importante

Il polimorfismo elimina lunghe catene di if-else e switch ripetuti. Si scrive codice flessibile, capace di adattarsi a nuovi tipi senza modifiche. 🌱

Verifica rapida

Una domanda rapida sul polimorfismo.

Riepilogo

Il polimorfismo consiste nel programmare rispetto a un tipo condiviso, mentre ogni oggetto si comporta a modo proprio. Mantiene il codice flessibile e aperto a nuovi sottotipi. ✨

Gratis per iniziare

Impara Dart con un tutor IA — gratis

Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.

Corsi
30
Lezioni
120

Domande Frequenti

La lezione «Polimorfismo tramite tipi condivisi» è gratuita?

Sì — il testo completo di «Polimorfismo tramite tipi condivisi» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Dart Academy, passa a CoddyKit PRO. Il corso Dart Academy include 4 lezioni in totale.

Cosa imparerò in «Polimorfismo tramite tipi condivisi»?

Programmare rispetto a un tipo, non a una classe. Eserciti Dart Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Dart Academy?

Non è richiesta alcuna esperienza precedente. Dart Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 4.

Quanto tempo richiede la lezione «Polimorfismo tramite tipi condivisi»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Dart Academy?

Sì. Ogni lezione Dart Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Classi e metodi astratti
  2. Interfacce implicite e implements
  3. Polimorfismo tramite tipi condivisi
  4. Composizione invece di ereditarietà
← Torna a Dart Academy