Dart Academy · leksjon

extends og metodeoverstyring

Del og spesialiser atferd fra forelderen.

Leksjon 1 av 413 trinn

extends og metodeoverstyring er en gratis leksjon i Dart Academy på CoddyKit. Dette er leksjon 1 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Dart Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Dart Academy inneholder totalt 4 leksjoner.

Dele funksjonalitet

Når to klasser deler det meste av funksjonaliteten, kan De skrive den én gang og gjenbruke den. Dart kaller dette arv, og De slipper dermed å kopiere og lime inn kode. 🌱

Nøkkelordet extends

De arver ved å skrive extends etter et klassenavn. Den nye klassen blir et barn som automatisk får forelderens felter og metoder.

class Animal {}
class Dog extends Animal {}

Forelder og barn

Klassen De utvider, er superklassen (forelderen). Den nye klassen er underklassen (barnet). En Dog er et Animal, men ikke alle Animal er en Dog.

Nedarvede medlemmer

Et barn får umiddelbart bruke forelderens offentlige metoder som om de var barnets egne. De skriver den nedarvede funksjonaliteten én gang, og alle underklasser får nytte av den.

class Animal {
  void breathe() => print('breathing');
}
class Dog extends Animal {}
// Dog().breathe() works

Legge til ny funksjonalitet

En underklasse kan også legge til sine egne metoder oppå det den arver. Barnet er fortsatt et Animal, men får ekstra egenskaper som forelderen ikke hadde.

class Dog extends Animal {
  void bark() => print('Woof!');
}

Overstyre en metode

Noen ganger passer superklassens versjon ikke for underklassen. Overstyring lar en underklasse erstatte en arvet metode med sin egen implementasjon.

class Animal {
  void speak() => print('...');
}
class Cat extends Animal {
  void speak() => print('Meow');
}

Markøren @override

Legg annotasjonen @override over metoden som erstattes. Den ber analysatoren bekrefte at superklassen faktisk har denne metoden, slik at skrivefeil oppdages tidlig.

class Cat extends Animal {
  @override
  void speak() => print('Meow');
}

Samme signatur kreves

En overstyring må beholde samme navn og en kompatibel signatur. Hvis du endrer parameterne eller returtypen uforsiktig, avviser Dart den.

Gjenbruk superklassens versjon

Inne i en overstyring kan du fortsatt kalle den opprinnelige versjonen via super, og deretter legge til egne trinn rundt den. Du utvider atferden i stedet for å forkaste den.

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

Polymorfisme i praksis

Lagre objekter av underklasser i en variabel av typen Animal, og kall speak: hver underklasse kjører sin egen versjon. Dette er polymorfisme, den egentlige gevinsten ved overstyring.

Animal a = Cat();
a.speak(); // Meow

Enkelt arv

En Dart-klasse kan utvide nøyaktig én superklasse, aldri to. Hvis du senere vil dele kode på tvers av urelaterte hierarkier, kan du bruke mixins i stedet.

Rask sjekk

Du erstatter en arvet metode i en underklasse. Hva gjør den?

Oppsummering

Du brukte extends til å arve medlemmene fra en superklasse, la til nye metoder og overstyrte andre med @override. Dette er kjernen i gjenbruk av klasser. 🎉

Gratis å komme i gang

Lær deg Dart med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
30
Leksjoner
120

Ofte stilte spørsmål

Er leksjonen «extends og metodeoverstyring» gratis?

Ja – hele teksten i «extends og metodeoverstyring» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Dart Academy-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Dart Academy inneholder totalt 4 leksjoner.

Hva lærer jeg i «extends og metodeoverstyring»?

Del og spesialiser atferd fra forelderen. Du øver på Dart Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med Dart Academy?

Ingen tidligere erfaring er nødvendig. Dart Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 1 av 4.

Hvor lang tid tar leksjonen «extends og metodeoverstyring»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne Dart Academy-leksjonen?

Ja. Alle Dart Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. extends og metodeoverstyring
  2. Kall super og konstruktørkjeding
  3. Mixins med nøkkelordet with
  4. on-begrensninger og rekkefølge for mixins
← Tilbake til Dart Academy