extends e sovrascrittura dei metodi
Condividere e specializzare il comportamento della classe padre.
extends e sovrascrittura dei metodi è 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.
Condividere il comportamento
Quando due classi condividono gran parte del comportamento, puoi scriverlo una sola volta e riutilizzarlo. Dart chiama questo meccanismo inheritance e ti evita il copia e incolla. 🌱
La parola chiave extends
Erediti scrivendo extends dopo il nome di una classe. La nuova classe è una classe figlia che acquisisce automaticamente i campi e i metodi del genitore.
class Animal {}
class Dog extends Animal {}Classe genitore e classe figlia
La classe che estendi è la superclass (genitore). La nuova classe è la sottoclasse (figlia). Un Dog è un Animal, ma non ogni Animal è un Dog.
Membri ereditati
Una classe figlia può usare immediatamente i metodi pubblici del genitore come se fossero propri. Scrivi il comportamento inherited una sola volta e ogni sottoclasse ne trarrà vantaggio.
class Animal {
void breathe() => print('breathing');
}
class Dog extends Animal {}
// Dog().breathe() worksAggiungere un nuovo comportamento
Una sottoclasse può anche aggiungere i propri metodi oltre a ciò che eredita. La figlia resta un Animal, ma acquisisce capacità extra che il genitore non aveva.
class Dog extends Animal {
void bark() => print('Woof!');
}Sovrascrivere un metodo
A volte la versione del genitore non è adatta al figlio. L'override consente a una sottoclasse di sostituire un metodo ereditato con una propria implementazione.
class Animal {
void speak() => print('...');
}
class Cat extends Animal {
void speak() => print('Meow');
}Il marker @override
Inserisca l'annotazione @override sopra il metodo sostituito. Indica all'analizzatore di verificare che il genitore possieda davvero quel metodo, rilevando subito eventuali errori di battitura.
class Cat extends Animal {
@override
void speak() => print('Meow');
}È richiesta la stessa firma
Un override deve mantenere lo stesso nome e una firma compatibile. Se modifica con leggerezza i parametri o il tipo restituito, Dart rifiuterà il codice.
Riutilizzare la versione del genitore
All'interno di un override può ancora chiamare l'implementazione originale tramite super, quindi aggiungere i propri passaggi prima o dopo. In questo modo estende il comportamento invece di eliminarlo.
@override
void speak() {
super.speak();
print('and purrs');
}Il polimorfismo in azione
Memorizzi gli oggetti figli in una variabile di tipo Animal e chiami speak: ciascuno eseguirà la propria versione. Questo è il polimorfismo, il vero vantaggio degli override.
Animal a = Cat();
a.speak(); // MeowEreditarietà singola
Una classe Dart può estendere esattamente un superclass, mai due. Per condividere codice tra gerarchie non correlate, in seguito potrà ricorrere ai mixin.
Verifica rapida
Sostituisce un metodo ereditato in una sottoclasse. Che cosa fa?
Riepilogo
Ha usato extends per ereditare i membri di un genitore, ha aggiunto nuovi metodi e ha eseguito l'override di altri con @override. Questo è il cuore del riutilizzo delle classi. 🎉
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 «extends e sovrascrittura dei metodi» è gratuita?
Sì — il testo completo di «extends e sovrascrittura dei metodi» è 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 «extends e sovrascrittura dei metodi»?
Condividere e specializzare il comportamento della classe padre. 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 «extends e sovrascrittura dei metodi»?
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
- extends e sovrascrittura dei metodi
- Chiamare super e concatenare i costruttori
- Mixin con la parola chiave with
- Vincoli on e ordine dei mixin