0Pricing
Dart Academy · Lezione

Chiamare super e concatenare i costruttori

Raggiungere la classe padre durante la costruzione.

Chiamare super e concatenare i costruttori è una lezione Dart Academy gratuita su CoddyKit. Questa è la lezione 2 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.

Ordine di costruzione

Quando costruisce una sottoclasse, il genitore deve essere inizializzato per primo. Dart garantisce che il costruttore del genitore venga eseguito prima dell'inizio del corpo del figlio. 🏗️

Conoscere super

La parola chiave super fa riferimento alla parte dell'oggetto appartenente al genitore. La usa per accedere al costruttore, ai metodi e ai campi del genitore dall'interno del figlio.

Il super() implicito

Se non scrive nulla, Dart chiama automaticamente per Lei il costruttore del genitore senza argomenti. Questo super() invisibile spiega perché i genitori vengono sempre inizializzati per primi.

class Animal { Animal() => print('Animal'); }
class Dog extends Animal { Dog(); }

Chiamare super esplicitamente

Quando il genitore richiede degli argomenti, chiami super(...) nell'elenco degli inizializzatori del costruttore, dopo i due punti. In questo modo inoltra i valori lungo la catena.

class Dog extends Animal {
  Dog(String name) : super(name);
}

Dove va super

La chiamata a super si trova nell'elenco degli inizializzatori, mai nel corpo del costruttore. Quando il corpo viene eseguito, il genitore è già stato costruito completamente.

Dog(String name, this.breed) : super(name);

Parametri super

Le versioni moderne di Dart consentono di inoltrare gli argomenti direttamente al genitore con super.field. In questo modo si elimina il codice ripetitivo nell'elenco dei parametri.

class Dog extends Animal {
  Dog(super.name);
}

Chiamare i metodi super

All'interno di un metodo sottoposto a override, super.method() esegue la versione originale del genitore. In questo modo estende il comportamento invece di sostituirlo completamente.

@override
void speak() {
  super.speak();
  print('extra');
}

Risalire la gerarchia

Con diversi livelli di ereditarietà, ogni costruttore chiama il proprio genitore. Questa catena raggiunge il vertice, quindi esegue i corpi tornando verso il basso fino alla propria classe.

Ordine degli inizializzatori

L'ordine completo è: prima l'elenco degli inizializzatori e super, poi il corpo del genitore e infine il corpo del figlio. I campi sono pronti per essere final prima dell'esecuzione di qualsiasi corpo.

Quando il genitore richiede argomenti

Se il genitore non ha un costruttore predefinito, deve chiamare super con gli argomenti corretti. Se omette la chiamata, Dart segnala un errore di compilazione.

Reindirizzare con this

All'interno di una classe, un costruttore può chiamarne un altro usando this(...). Si tratta di una catena tra costruttori fratelli, diversa dall'accesso verso l'alto tramite super.

Point.origin() : this(0, 0);

Verifica rapida

Rifletta su dove deve comparire la chiamata al costruttore del genitore.

Riepilogo

Ha chiamato super per eseguire i costruttori e i metodi del genitore, ha inoltrato valori con i parametri super e ha reindirizzato i costruttori fratelli con this. 🔗

Domande Frequenti

La lezione «Chiamare super e concatenare i costruttori» è gratuita?

Sì — il testo completo di «Chiamare super e concatenare i costruttori» è 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 «Chiamare super e concatenare i costruttori»?

Raggiungere la classe padre durante la costruzione. 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 2 di 4.

Quanto tempo richiede la lezione «Chiamare super e concatenare i costruttori»?

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. extends e sovrascrittura dei metodi
  2. Chiamare super e concatenare i costruttori
  3. Mixin con la parola chiave with
  4. Vincoli on e ordine dei mixin
← Torna a Dart Academy