Java Academy · leksjon

Abstrakte klasser

Deklarer abstrakte klasser og metoder, forstå hvorfor de ikke kan instansieres, og se hvordan underklasser fullfører designet.

Leksjon 1 av 38 trinn

Abstrakte klasser er en gratis leksjon i Java Academy på CoddyKit. Dette er leksjon 1 av 3. 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 Java Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Java Academy inneholder totalt 3 leksjoner.

Hva er en abstrakt klasse?

Abstrakt klasse: definerer en felles idé og kan la noen metoder stå uten implementasjon. Den kan også inneholde vanlige metoder med kode. Tenk på den som en mal som krever at underklassene fyller ut de manglende delene.

Kode: kan ikke instansieres

Abstrakte klasser kan ikke instansieres direkte. De kan likevel inneholde vanlige metoder som alle underklassene arver.

public class Main {
  // Abstract class with one abstract method and one concrete method
  static abstract class Animal {
    abstract void speak();              // must be implemented by subclasses
    void info() {                       // concrete method allowed
      System.out.println("I am an animal.");
    }
  }

  public static void main(String[] args) {
    // Animal a = new Animal(); // Uncommenting would not compile: cannot instantiate abstract class
    System.out.println("You cannot create an Animal directly if it is abstract.");
  }
}

Hvorfor bruke abstrakte klasser?

De samler felles kode på ett sted og krever at viktige metoder implementeres av hver underklasse. Bruk dem når noe av funksjonaliteten er felles, mens noe varierer mellom konkrete typer.

Kode: implementere en abstrakt metode

Underklasser må implementere abstrakte metoder. Konkrete metoder fra den abstrakte klassen arves og kan gjenbrukes.

public class Main {
  static abstract class Animal {
    abstract void speak();
    void info() {
      System.out.println("I am an animal.");
    }
  }

  static class Dog extends Animal {
    // Must implement speak()
    void speak() {
      System.out.println("Woof!");
    }
  }

  public static void main(String[] args) {
    Dog d = new Dog();      // allowed: Dog is concrete
    d.info();               // inherited concrete method
    d.speak();              // Dog's implementation
  }
}

Regler og blanding

Regler: En abstrakt klasse kan ha felt, konstruktører og konkrete metoder. En underklasse blir konkret først når den har implementert alle abstrakte metoder. Ellers er den også abstrakt.

Kode: abstraksjon og polymorfisme

Abstrakte klasser fungerer godt sammen med polymorfisme. Koden kan bruke den abstrakte typen, og hver underklasse leverer riktig funksjonalitet.

public class Main {
  static abstract class Animal {
    abstract void speak();
  }

  static class Dog extends Animal {
    void speak() { System.out.println("Woof!"); }
  }

  static class Cat extends Animal {
    void speak() { System.out.println("Meow!"); }
  }

  public static void main(String[] args) {
    // Polymorphism through abstract base type
    Animal[] pets = { new Dog(), new Cat() };
    for (int i = 0; i < pets.length; i = i + 1) {
      pets[i].speak(); // each subclass provides its own behavior
    }
  }
}

Kontroll av abstrakte klasser

Kort kontroll: Hvilken påstand om abstrakte klasser er riktig?

Oppsummering

Oppsummering: Bruk abstrakte klasser til å dele kode og kreve viktige metoder. Du kan ikke instansiere dem direkte, men underklassene fullfører funksjonaliteten.

Gratis å komme i gang

Lær deg Java 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
104
Leksjoner
374

Ofte stilte spørsmål

Er leksjonen «Abstrakte klasser» gratis?

Ja – hele teksten i «Abstrakte klasser» 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 Java Academy-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Java Academy inneholder totalt 3 leksjoner.

Hva lærer jeg i «Abstrakte klasser»?

Deklarer abstrakte klasser og metoder, forstå hvorfor de ikke kan instansieres, og se hvordan underklasser fullfører designet. Du øver på Java 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 Java Academy?

Ingen tidligere erfaring er nødvendig. Java 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 3.

Hvor lang tid tar leksjonen «Abstrakte klasser»?

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 Java Academy-leksjonen?

Ja. Alle Java 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. Abstrakte klasser
  2. Grensesnitt (introduksjon og sammenligninger)
  3. Opp- og nedkonvertering og instanceof
← Tilbake til Java Academy