Classi e metodi astratti
Definire ciò che le sottoclassi devono implementare.
Classi e metodi astratti è una lezione Dart Academy gratuita su CoddyKit. Questa è la lezione 1 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 abstract
Una classe abstract è un modello che si può descrivere, ma non creare direttamente. Esiste per essere estesa, non per essere istanziata autonomamente.
Contrassegnare una classe come abstract
Aggiunga la parola chiave abstract prima di class. Indica a Dart che la classe è incompleta ed è destinata a fungere da base condivisa.
abstract class Shape {
double area();
}I metodi abstract non hanno un corpo
Un metodo abstract dichiara un nome e una firma, ma termina con un punto e virgola, lasciando a ogni sottoclasse il compito di implementare il comportamento effettivo.
abstract class Shape {
double area(); // no body
}Non è possibile istanziarla
Provare a scrivere Shape() produce un errore di compilazione. Dart rifiuta l'operazione perché una classe abstract è incompleta e non possiede un'implementazione concreta.
var s = Shape(); // error: abstractLe sottoclassi completano le parti mancanti
Una sottoclasse usa extends e deve fornire un corpo per ogni metodo abstract, trasformando il modello in qualcosa di utilizzabile.
class Circle extends Shape {
final double r;
Circle(this.r);
double area() => 3.14 * r * r;
}Sono consentiti anche metodi concreti
Una classe abstract può includere metodi concreti completamente implementati. Le sottoclassi li ereditano direttamente e devono completare solo quelli abstract.
abstract class Shape {
double area();
void describe() => print('Area is ' + area().toString());
}Campi nelle classi abstract
Le classi abstract possono contenere anche campi e costruttori. Questi vengono eseguiti quando si crea una sottoclasse, quindi lo stato condiviso risiede nella classe base.
abstract class Shape {
final String name;
Shape(this.name);
}Il compilatore impone il contratto
Se una sottoclasse dimentica un metodo abstract, Dart segnala un errore prima ancora che il codice venga eseguito. Il contratto viene verificato automaticamente.
class Square extends Shape {} // error: area() missingPerché usare le classi abstract
Consentono a molti tipi di condividere una stessa struttura, garantendo al contempo che ciascuno fornisca il proprio comportamento. Progetta un contratto chiaro una volta sola e lo riutilizza ovunque.
Getter abstract
Non sono solo i metodi a poter essere lasciati abstract. Un getter senza corpo funziona allo stesso modo e deve essere definito dalle sottoclassi.
abstract class Shape {
String get label;
}Usare riferimenti abstract
Può memorizzare qualsiasi sottoclasse in una variabile tipizzata come la classe abstract. Il tipo garantisce determinati comportamenti senza indicare una classe concreta.
Shape s = Circle(2);
print(s.area());Verifica rapida
Una domanda rapida sulle classi abstract.
Riepilogo
Le classi abstract sono modelli da estendere, non da istanziare. I metodi abstract non hanno un corpo e le sottoclassi concrete devono implementarli. Ottimo lavoro! 🎯
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 «Classi e metodi astratti» è gratuita?
Sì — il testo completo di «Classi e metodi astratti» è 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 «Classi e metodi astratti»?
Definire ciò che le sottoclassi devono implementare. 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 1 di 4.
Quanto tempo richiede la lezione «Classi e metodi astratti»?
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
- Classi e metodi astratti
- Interfacce implicite e implements
- Polimorfismo tramite tipi condivisi
- Composizione invece di ereditarietà