Abstrakte klasser
Deklarér abstrakte klasser og metoder, forstå hvorfor de ikke kan instantieres, og se, hvordan underklasser fuldfører designet.
Abstrakte klasser er en gratis Java Academy-lektion på CoddyKit. Dette er lektion 1 af 3. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i Java Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Java Academy-kurset indeholder 3 lektioner i alt.
Hvad er en abstrakt klasse?
Abstrakt klasse: Definerer en fælles idé og kan lade nogle metoder stå uden en krop. Den kan også indeholde normale metoder med kode. Tænk på den som en skabelon, der kræver, at underklasser udfylder de tomme felter.
Kode: kan ikke oprette en instans
Abstrakte klasser kan ikke instantieres direkte. De kan stadig indeholde almindelige metoder, som alle underklasser 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 bruge abstrakte klasser?
De samler fælles kode ét sted og tvinger hver underklasse til at levere vigtige metoder. Brug dem, når noget af adfærden er fælles, mens noget varierer mellem konkrete typer.
Kode: implementer abstrakt metode
Underklasser skal implementere abstrakte metoder. Konkrete metoder fra den abstrakte klasse nedarves og kan genbruges.
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 kombination
Regler: En abstrakt klasse kan have felter, konstruktører og konkrete metoder. En underklasse bliver først konkret, når den har implementeret alle abstrakte metoder; ellers er den også abstrakt.
Kode: abstrakt + polymorfisme
Abstrakte klasser fungerer godt sammen med polymorfisme. Koden kan bruge den abstrakte type, og hver underklasse leverer den rigtige adfærd.
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
}
}
}
Kontrol af abstrakte klasser
Hurtigt tjek: Hvilket udsagn om abstrakte klasser er korrekt?
Opsummering
Opsummering: Brug abstrakte klasser til at dele kode og kræve vigtige metoder. Du kan ikke oprette instanser af dem direkte, men underklasserne fuldfører adfærden.
Lær Java med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 104
- Lektioner
- 374
Ofte stillede spørgsmål
Er lektionen “Abstrakte klasser” gratis?
Ja — hele teksten til “Abstrakte klasser” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af Java Academy-kurset, skal du opgradere til CoddyKit PRO. Java Academy-kurset indeholder 3 lektioner i alt.
Hvad lærer jeg i “Abstrakte klasser”?
Deklarér abstrakte klasser og metoder, forstå hvorfor de ikke kan instantieres, og se, hvordan underklasser fuldfører designet. Du øver dig i Java Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på Java Academy?
Der kræves ingen tidligere erfaring. Java Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 1 af 3.
Hvor lang tid tager lektionen “Abstrakte klasser”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne Java Academy-lektion?
Ja. Alle Java Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.