Innen objektorientert programmering er arv et sentralt aspekt. Med det kan du arve fra eksisterende klasser og legge til nye funksjoner i underklasser (subklasser). I denne veiledningen fokuserer du på opprettelsen av en spesifikk subklasse, "LKW", for å lære grunnleggende om arv i C# på en praktisk måte.

Viktigste funn

  • Arv gjør det mulig å opprette en subklasse fra en baseklasse.
  • Konstruktører er avgjørende for å definere spesifikke egenskaper ved en subklasse.
  • Metodene til baseklassen kan overskrives i subklassen for å definere spesifikk atferd.

Trinn-for-trinn-veiledning

Trinn 1: Bruk prosjektutforskeren og legg til klasse

For å opprette subklassen LKW, åpner du prosjektutforskeren. Her høyreklikker du på prosjektet ditt og velger alternativet "Legg til". Velg å legge til en ny klasse og gi den navnet "LKW". Denne klassen vil inneholde alle egenskaper og metoder som er spesifikke for LKW-er.

Opprett en LKW-underklasse i C# og implementer bompengeberegning

Trinn 2: Opprett privat variabel

I LKW-klassen oppretter du neste steg en privat variabel som skal lagre antall aksler. Denne informasjonen er viktig, da den spiller en rolle i beregningen av bompenger. Du kan kalle variabelen "antallAksler". Dermed er den første delen av de spesifikke egenskapene til LKW-en din allerede definert.

Trinn 3: Opprett subklassekonstruktører

Nå er det på tide å lage konstruktørene for LKW-klassen din. Du begynner først med den overlastede konstruktørmetoden. Denne metoden aksepterer parametere som modell, forbruk og tankinnhold. Du sender disse verdiene til konstruktørmetoden i baseklassen Bil. Du må sørge for at antallet aksler også blir definert.

Trinn 4: Herediter subklasse fra baseklasse

For å sikre at LKW-klassen blir gjenkjent som en subklasse av baseklassen Bil, legger du til baseklassen i headeren til LKW-klassen med et kolon. Dette oppretter forholdet mellom klassen LKW og baseklassen Bil, som gir deg tilgang til metodene og egenskapene deres.

Opprette en underklasse for lastebil i C# og implementere bompengeberegning

Trinn 5: Opprett andre subklassekonstruktørmetode

I tillegg til den overlastede metoden, oppretter du en vanlig konstruktørmetode. Denne bør ha modell, forbruk og tankinnhold som parametere, men ta ikke imot antall aksler som inngangsverdi. I stedet settes det som standard til to, for å håndtere det vanligste scenariet for en LKW.

Trinn 6: Overskriv kjøre-metoden

Neste skritt er å overskrive kjøre-metoden som er definert i baseklassen Bil. I denne metoden beregner du kjørekostnader basert på tilbakelagt avstand, kjøretøyparametere og om LKW-en har kjørt på en motorvei. Du må sørge for at bomkostnadene beregnes avhengig av antall aksler.

Trinn 7: Bruk en Switch-setning for å beregne bompenger

Her kan du introdusere en Switch-setning som behandler ulike tilfeller for antall aksler. Dette er viktig, da LKW-er med ulikt antall aksler har ulike bompriser. Du kan også bruke alternative kontrollstrukturer, men Switch-setningen sørger her for tydelighet og lesbarhet.

Trinn 8: Kall på subklassekonstruktøren

Nå som din LKW-klasse er definert, kan du i programmet CS opprette en instans av klassen. For dette kaller du konstruktøren til LKW-klassen for å lage et nytt LKW-objekt som inneholder alle nødvendige parametere. Du definerer også hvor mye LKW-en forbruker og hvilke spesifikke egenskaper den har.

Opprett underklasse LKW i C# og implementer bompengeberegning

Trinn 9: Kjøring av LKW-en og utdata av kjørekostnader

Etter å ha instansiert LKW-en, lar du den kjøre ved å kalle kjøre-metoden. Overfør den tilbakelagte distansen, og om LKW-en har kjørt på motorveien eller ikke. Til slutt skriver du ut kjørekostnadene, som ble beregnet i metoden avhengig av antall aksler, i konsollen.

Opprette en underklasse LKW i C# og implementere bompengerberegning

Sammendrag - Oppretting av LKW Subklasse i C#

I denne veiledningen har du lært hvordan du oppretter en LKW-subklasse i C#. Du har lært og anvendt grunnleggende om arv, ved å implementere private variabler og konstruktører for subklassen. Du har vært i stand til å overskrive metoder og definere spesifikk atferd for LKW-er. Med disse ferdighetene kan du nå skrive mer komplekse objektorienterte programmer i C#.

Vanlige spørsmål

Hva er forskjellen mellom en klasse og en subklasse?En klasse er en generell mal, mens en subklasse arver spesifikke egenskaper og metoder fra baseklassen.

Hvordan lager jeg en konstruktør i C#?En konstruktør defineres av klassen den oppretter og har samme navn som klassen uten returverdi.

Kan jeg overskrive en metode i subklassen flere ganger?Ja, du kan overskrive en metode i subklassen. Dette er nyttig for å definere spesifikk atferd for ulike subklasser.

Hvordan bruker jeg Switch-setningen i C#?Switch-setningen lar deg styre forskjellige kodeveier avhengig av verdien til en variabel. Det er en effektiv måte å unngå komplekse forgreininger på.