extends och super
Använd extends för att återanvända en basklass och super för att anropa föräldrakonstruktorn eller föräldrametoder. Håll exemplen små och lättlästa.
extends och super är en gratis lektion i Java Academy på CoddyKit. Detta är lektion 1 av 3. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Java Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Java Academy innehåller totalt 3 lektioner.
Vad är arv?
Arv låter en klass återanvända och utöka en annan klass. Underklassen får superklassens fält och metoder och kan lägga till egna. Använd arv för att dela gemensam kod mellan liknande typer.
Använda extends
Använd nyckelordet extends för att skapa en underklass. Exempelidé: class Car extends Vehicle. Underklassen är en specifik typ av superklassen och kan återanvända dess beteende.
super(...) i konstruktorer
I en underkonstruktor anropar super(...) superklassens konstruktor. Då initieras superklassens del först. Om ni inte anropar den uttryckligen anropar Java som standard superklassens konstruktor utan argument, om en sådan finns.
super.method()
Ni kan också skriva super.someMethod() för att använda superklassens version av en metod. Det är praktiskt när underklassen vill lägga till ett mindre beteende runt grundlogiken.
När ska det användas?
Använd arv för en tydlig is-a-relation: en Car är ett Vehicle. Om ni bara vill återanvända funktionalitet utan en passande is-a-relation bör ni föredra komposition. Håll klassträden grunda när ni är nybörjare.
Kod: extends och super
Kod: Car extends Vehicle. Konstruktorn anropar super för att ange brand. Underklassens metod anropar super.printInfo() och lägger sedan till sin egen rad.
public class Main {
// Base class with a simple constructor and method
static class Vehicle {
String brand;
Vehicle(String brand) {
this.brand = brand; // parent sets its own field
}
void printInfo() {
System.out.println("Vehicle brand: " + brand);
}
}
// Subclass reuses Vehicle with extends
static class Car extends Vehicle {
int doors;
Car(String brand, int doors) {
super(brand); // call parent constructor first
this.doors = doors;
}
void printInfo() {
// Add extra info, but reuse parent behavior
super.printInfo(); // call parent method
System.out.println("Doors: " + doors);
}
}
public static void main(String[] args) {
// Create a Car (which is a Vehicle)
Car c = new Car("EcoMotors", 4);
c.printInfo(); // shows parent info then child info
}
}
Kontroll av super(...)
Snabb kontroll: Vad gör anropet super(...) i en underklasskonstruktor?
Sammanfattning
Sammanfattning: extends skapar en is-a-relation, super(...) initierar superklassen och super.method() återanvänder grundlogik. Föredra grunda och enkla hierarkier.
Lär dig Java med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 104
- Lektioner
- 374
Vanliga frågor
Är lektionen ”extends och super” gratis?
Ja – hela texten till ”extends och super” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Java Academy, kan Ni uppgradera till CoddyKit PRO. Kursen i Java Academy innehåller totalt 3 lektioner.
Vad lär jag mig i ”extends och super”?
Använd extends för att återanvända en basklass och super för att anropa föräldrakonstruktorn eller föräldrametoder. Håll exemplen små och lättlästa. Ni övar på Java Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig Java Academy?
Du behöver inga förkunskaper. Utbildningen i Java Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 1 av 3.
Hur lång tid tar lektionen ”extends och super”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här Java Academy-lektionen?
Ja. Varje Java Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- extends och super
- Metodöverskuggning
- Polymorfism och dynamisk bindning