Nedarvning: Genbrug af kode
Genbrug og udvid eksisterende kode ved hjælp af nedarvning i C#
Nedarvning: Genbrug af kode er en gratis C# Academy-lektion på CoddyKit. Dette er lektion 6 af 7. 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 C# Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. C# Academy-kurset indeholder 7 lektioner i alt.
Introduktion til nedarvning
Nedarvning: Genbrug af kode
Velkommen til den næste lektion! I denne lektion lærer du om nedarvning, et af de grundlæggende principper i objektorienteret programmering, og om hvordan det gør det muligt at genbruge kode og opbygge hierarkier. Lad os komme i gang!

Hvad er nedarvning?
Nedarvning gør det muligt for én klasse (den afledte eller underordnede klasse) at overtage attributter og metoder fra en anden klasse (den overordnede klasse eller basisklasse). Det muliggør genbrug af kode og hierarkiske relationer mellem klasser.
Eksempel: Klassen "Car" kan fungere som basisklasse for klasserne "ElectricCar" og "SportsCar", som deler almindelige egenskaber som "Color" og "Speed".
Definition af en basisklasse
En basisklasse indeholder fælles egenskaber og metoder, som kan nedarves af afledte klasser. Eksempel:
Vigtigt: Definer genanvendelig kode i basisklassen.
using System;
class Vehicle {
public string Color;
public void Drive() {
Console.WriteLine("The vehicle is driving.");
}
}
Oprettelse af en afledt klasse
En afledt klasse nedarver egenskaber og metoder fra en basisklasse. Brug symbolet : til at angive nedarvning. Eksempel:
Vigtigt: Afledte klasser kan tilføje nye funktioner eller tilsidesætte basisklassens funktionalitet.
using System;
class Vehicle {
public string Color;
public void Drive() {
Console.WriteLine("The vehicle is driving.");
}
}
class Car : Vehicle {
public int NumberOfDoors;
public void ShowDetails() {
Console.WriteLine("Color: " + Color);
Console.WriteLine("Doors: " + NumberOfDoors);
}
}
class Program {
static void Main() {
Car myCar = new Car();
myCar.Color = "Red"; // Inherited from Vehicle
myCar.NumberOfDoors = 4;
myCar.Drive(); // Inherited from Vehicle
myCar.ShowDetails();
}
}
Tilsidesættelse af metoder
Afledte klasser kan tilsidesætte metoder i basisklassen for at levere specialiseret adfærd. Brug nøgleordet virtual i basisklassen og nøgleordet override i den afledte klasse. Eksempel:
Tip: Tilsidesættelse er nyttig til at tilpasse adfærden i afledte klasser.
using System;
class Vehicle {
public virtual void Drive() {
Console.WriteLine("The vehicle is driving.");
}
}
class SportsCar : Vehicle {
public override void Drive() {
Console.WriteLine("The sports car is driving fast!");
}
}
class Program {
static void Main() {
SportsCar myCar = new SportsCar();
myCar.Drive(); // Calls the overridden method
}
}
Nøgleordet base
Nøgleordet base bruges til at få adgang til medlemmer fra basisklassen inde fra en afledt klasse. Eksempel:
Tip: Brug base til at udvide eller supplere basisklassens funktionalitet.
using System;
class Vehicle {
public string Color;
public virtual void Drive() {
Console.WriteLine("The vehicle is driving.");
}
}
class Truck : Vehicle {
public override void Drive() {
base.Drive(); // Calls the base class method
Console.WriteLine("The truck is carrying a heavy load.");
}
}
class Program {
static void Main() {
Truck myTruck = new Truck();
myTruck.Color = "Blue";
myTruck.Drive();
}
}
Øvelsesopgave
Opret en basisklasse med navnet Animal og en metode Speak(), der udskriver "Dyret laver en lyd." Opret afledte klasser Dog og Cat, som tilsidesætter Speak() for at udskrive "Hunden gør." og "Katten miaver." Eksempel:
using System;
class Animal {
public virtual void Speak() {
Console.WriteLine("The animal makes a sound.");
}
}
class Dog : Animal {
public override void Speak() {
Console.WriteLine("The dog barks.");
}
}
class Cat : Animal {
public override void Speak() {
Console.WriteLine("The cat meows.");
}
}
class Program {
static void Main() {
Animal myDog = new Dog();
Animal myCat = new Cat();
myDog.Speak();
myCat.Speak();
}
}
Bedste praksis for nedarvning
Her er nogle anbefalinger:
- Brug kun nedarvning, når der er en tydelig relation af typen "er en" (f.eks. er en bil et køretøj).
- Gør basisklasser så generelle som muligt.
- Brug
sealedfor at forhindre yderligere nedarvning, når det er nødvendigt.
Tip: Nedarvning bør forenkle din kodebase, ikke gøre den mere kompliceret.
Godt gået!
Tillykke! Du har lært at bruge nedarvning til at genbruge kode og opbygge klassehierarkier i C#. I næste lektion dykker vi ned i polymorfi, et andet stærkt begreb inden for objektorienteret programmering. Lad os fortsætte med at kode!

Lær C# 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
- 93
- Lektioner
- 346
Ofte stillede spørgsmål
Er lektionen “Nedarvning: Genbrug af kode” gratis?
Ja — hele teksten til “Nedarvning: Genbrug af kode” 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 C# Academy-kurset, skal du opgradere til CoddyKit PRO. C# Academy-kurset indeholder 7 lektioner i alt.
Hvad lærer jeg i “Nedarvning: Genbrug af kode”?
Genbrug og udvid eksisterende kode ved hjælp af nedarvning i C# Du øver dig i C# 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å C# Academy?
Der kræves ingen tidligere erfaring. C# 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 6 af 7.
Hvor lang tid tager lektionen “Nedarvning: Genbrug af kode”?
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 C# Academy-lektion?
Ja. Alle C# 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.
Alle lektioner i dette kursus
- Hvad er objektorienteret programmering?
- Definition af klasser og objekter
- Forståelse af egenskaber og metoder
- Konstruktører i C#
- Indkapsling og adgangsmodifikatorer
- Nedarvning: Genbrug af kode
- Polymorfi og metodetilsidesættelse