C# Academy · Lektion

Nedarvning: Genbrug af kode

Genbrug og udvid eksisterende kode ved hjælp af nedarvning i C#

Lektion 6 af 710 trin

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!

Nedarvning: Genbrug af kode — illustration 1

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 sealed for 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!

Nedarvning: Genbrug af kode — illustration 10
Gratis at komme i gang

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

  1. Hvad er objektorienteret programmering?
  2. Definition af klasser og objekter
  3. Forståelse af egenskaber og metoder
  4. Konstruktører i C#
  5. Indkapsling og adgangsmodifikatorer
  6. Nedarvning: Genbrug af kode
  7. Polymorfi og metodetilsidesættelse
← Tilbage til C# Academy