In området för objektorienterad programmering är arv ett centralt aspekt. Med det kan du ärva från befintliga klasser och lägga till nya funktionaliteter i underklasser (subklasser). I den här handledningen kommer du att fokusera på att skapa en specifik subklass, "Lastbil", för att lära dig grunderna i arv i C# på ett praktiskt sätt.

Viktigaste insikter

  • Arv gör det möjligt att skapa en subklass från en basklass.
  • Konstruktörer är avgörande för att fastställa specifika egenskaper hos en subklass.
  • Metoderna från basklassen kan åsidosättas i subklassen för att definiera specifikt beteende.

Steg-för-steg-guide

Steg 1: Använda projektmappsexploratorn och lägga till en klass

För att skapa subklassen Lastbil, öppna din projektmappsexplorator. Här högerklickar du på ditt projekt och väljer alternativet "Lägg till". Välj att lägga till en ny klass och namnge den "Lastbil". Denna klass kommer att innehålla alla egenskaper och metoder som är specifika för lastbilar.

Skapa en subclass LKW i C# och implementera vägavgiftsberäkning

Steg 2: Skapa en privat variabel

I Lastbilklassen skapar du som nästa steg en privat variabel som ska lagra antalet axlar. Denna information är viktig eftersom den spelar en roll i beräkningen av vägavgifter. Du kan kalla variabeln "antalAxlar". Därmed är den första delen av de specifika egenskaperna för din lastbil redan definierad.

Steg 3: Skapa subklasskonstruktörer

Nu är det dags att skapa konstruktörerna för din Lastbilklass. Du börjar först med den överlagrade konstruktörmetoden. Denna metod accepterar parametrar som modell, bränsleförbrukning och tankinnehåll. Under detta skickar du dessa värden till konstruktörmetoden för basklassen Bil. Du måste säkerställa att antalet axlar också definieras.

Steg 4: Härleda subklass från basklassen

För att säkerställa att Lastbilklassen erkänns som en subklass av basklassen Bil, lägger du till basklassen i rubriken för Lastbilklassen med ett kolon. Detta skapar relationen mellan Lastbilklassen och basklassen Bil, vilket ger dig tillgång till dess metoder och egenskaper.

Skapa en subklass för lastbil i C# och implementera vägavgiftsberäkning

Steg 5: Skapa en andra subklasskonstruktörmetod

Förutom den överlagrade metoden, skapa en vanlig konstruktörmetod. Denna bör ha modell, bränsleförbrukning och tankinnehåll som parametrar, men ta inte emot antalet axlar som indata. Istället sätts det som standard till två för att hantera det vanligaste scenariot för en lastbil.

Steg 6: Åsidosätta körometod

Nästa steg är att åsidosätta körometoden som är definierad i basklassen Bil. I denna metod beräknar du köpkostnader baserat på den tillryggalagda sträckan, fordonets parametrar och om lastbilen kört på motorväg. Du måste säkerställa att vägavgifterna beräknas beroende på antalet axlar.

Steg 7: Använda en switch-sats för att beräkna vägavgiften

Här kan du införa en switch-sats som hanterar olika fall för antalet axlar. Detta är viktigt eftersom lastbilar med olika antal axlar har olika vägavgiftssatser. Du kan också använda alternativa kontrollstrukturer, men switch-satsen ger tydlighet och läsbarhet här.

Steg 8: Anropa subklasskonstruktorn

Nu när din Lastbilklass är definierad, kan du i programmet CS skapa en instans av klassen. För detta anropar du konstruktorn för Lastbilklassen för att skapa ett nytt Lastbilobjekt som innehåller alla nödvändiga parametrar. Du anger även hur mycket lastbilen förbrukar och vilka specifika egenskaper den har.

Skapa en underklass för lastbil i C# och implementera vägavgiftsberäkning

Steg 9: Köra lastbilen och skriva ut kostnaderna

Efter att du har instansierat lastbilen, låt den köra genom att anropa körometoden. Skicka den tillryggalagda sträckan och om lastbilen har kört på motorväg eller inte. I slutet skriver du ut kostnaderna som beräknades baserat på antalet axlar i metoden i konsolen.

Skapa en subclass LKW i C# och implementera vägavgiftsberäkning

Sammanfattning – Skapa Lastbil subklass i C#

I den här handledningen har du lärt dig hur man skapar en Lastbil-subklass i C#. Du har lärt dig och tillämpat grunderna i arv genom att implementera privata variabler och konstruktörer för subklassen. Du har kunnat åsidosätta metoder och definiera specifikt beteende för lastbilar. Med dessa färdigheter kan du nu skriva mer komplexa objektorienterade program i C#.

Vanliga frågor

Vad är skillnaden mellan en klass och en subklass?En klass är en allmän mall medan en subklass ärver specifika egenskaper och metoder från basklassen.

Hur skapar jag en konstruktör i C#?En konstruktör definieras av klassen som den skapar och har samma namn som klassen utan returvärde.

Kan jag åsidosätta en metod i subklassen flera gånger?Ja, du kan åsidosätta en metod i subklassen. Detta är användbart för att definiera specifikt beteende för olika subklasser.

Hur använder jag switch-satsen i C#?Switch-satsen gör det möjligt för dig att styra olika kodvägar beroende på värdet av en variabel. Det är ett effektivt sätt att undvika komplexa förgreningar.