Inden for objektorienteret programmering er arv et centralt aspekt. Med det kan du arve fra eksisterende klasser og tilføje nye funktionaliteter i underklasser (Subklasser). I denne tutorial fokuserer du på at oprette en specifik underklasse, "LKW", for at lære grundlæggende arv i C# praktisk.
Vigtigste erkendelser
- Arv gør det muligt at oprette en underklasse fra en basisklasse.
- Konstruktører er afgørende for at definere specifikke egenskaber for en underklasse.
- Metoderne i basisklassen kan overskrives i underklassen for at definere specifik adfærd.
Trin-for-trin vejledning
Trin 1: Brug projektmappe-udforsker og tilføj klasse
For at oprette underklassen LKW åbner du din projektmappe-udforsker. Her højreklikker du på dit projekt og vælger indstillingen "Tilføj". Vælg at tilføje en ny klasse og navngiv den "LKW". Denne klasse vil indeholde alle egenskaber og metoder, der er specifikke for LKW'er.

Trin 2: Opret privat variabel
I LKW-klassen opretter du som næste skridt en privat variabel, der skal gemme antallet af aksler. Denne information er vigtig, da den spiller en rolle i beregningen af vejafgifter. Du kan navngive variablen "anzahlAchsen". Dermed er den første del af egenskaberne for din LKW allerede defineret.
Trin 3: Opret underklasset konstruktører
Nu er det tid til at oprette konstruktørerne for din LKW-klasse. Du begynder først med den overbelastede konstruktørmetode. Denne metode accepterer parametre som model, forbrug og tankindhold. Du videregiver disse værdier til konstruktørmetoden for basisklassen Bil. Du skal sikre dig, at antallet af aksler også bliver defineret.
Trin 4: Afdækning af underklassen fra basisklassen
For at sikre, at LKW-klassen anerkendes som en underklasse af basisklassen Bil, tilføjer du med et kolon basisklassen i headeren af LKW-klassen. Dette etablerer forholdet mellem LKW-klassen og basisklassen Bil, hvilket giver dig adgang til deres metoder og egenskaber.

Trin 5: Opret anden underklasset konstruktørmetode
Yderligere til den overbelastede metode opretter du en regulær konstruktørmetode. Denne skal have model, forbrug og tankindhold som parametre, men må ikke tage antallet af aksler som input. I stedet sættes det som standard til to for at håndtere det mest almindelige scenarie for en LKW.
Trin 6: Overskriv køre-metoden
Næste skridt er at overskrive køre-metoden, der er defineret i basisklassen Bil. I denne metode beregner du kørselsomkostningerne baseret på den tilbagelagte afstand, køretøjets parametre og om LKW'en har kørt på en motorvej. Du skal sikre dig, at vejafgifterne beregnes afhængigt af antallet af aksler.
Trin 7: Brug af en switch-erklæring til beregning af vejafgift
Her kan du introducere en switch-erklæring, der håndterer forskellige tilfælde for antallet af aksler. Dette er vigtigt, da LKW'er med forskelligt antal aksler har forskellige vejafgiftssatser. Du kan også bruge alternative kontrolstrukturer, men switch-erklæringen sikrer her overskuelighed og læsbarhed.
Trin 8: Kald af underklassens konstruktør
Nu hvor din LKW-klasse er defineret, kan du i programmet CS oprette en instans af klassen. For at gøre dette kalder du konstruktøren for LKW-klassen for at generere et nyt LKW-objekt, der indeholder alle nødvendige parametre. Du angiver også, hvor meget LKW'en forbruger og hvilke specifikke egenskaber den har.

Trin 9: Kørsel af LKW'en og output af kørselsomkostningerne
Når du har instantieret LKW'en, lad den køre ved at kalde køre-metoden. Videregiv den tilbagelagte afstand og om LKW'en har kørt på motorvejen eller ej. Til sidst viser du kørselsomkostningerne, der er beregnet baseret på antallet af aksler i metoden, i konsollen.

Sammenfatning – Oprettelse af LKW underklasse i C#
I denne tutorial har du lært, hvordan du opretter en LKW-underklasse i C#. Du har lært og anvendt grundprincipperne i arv ved at implementere private variabler og konstruktører for underklassen. Du kunne overskrive metoder og definere specifik adfærd for LKW'er. Med disse færdigheder kan du nu skrive mere komplekse objektorienterede programmer i C#.
Ofte stillede spørgsmål
Hvad er forskellen mellem en klasse og en underklasse?En klasse er en generel skabelon, mens en underklasse arver specifikke egenskaber og metoder fra basisklassen.
Hvordan opretter jeg en konstruktør i C#?En konstruktør defineres af klassen, den opretter, og bærer samme navn som klassen uden returværdi.
Kan jeg overskrive en metode flere gange i underklassen?Ja, du kan overskrive en metode i underklassen. Det er nyttigt for at definere specifik adfærd for forskellige underklasser.
Hvordan bruger jeg switch-erklæringen i C#?Switch-erklæringen giver dig mulighed for at styre forskellige kodeveje afhængigt af værdien af en variabel. Det er en effektiv måde at undgå komplekse forgreninger på.