using System;
Denna rad importerar System
-namnrymden, en grundläggande namnrymd i C#. Den innehåller vanligt använda typer som Console
, som används för in- och utmatningsoperationer.
public class Vehicle
Detta deklarerar en offentlig klass med namnet Vehicle
. public
betyder att denna klass kan nås från andra klasser.
{
Detta öppnar klassdefinitionen för Vehicle
.
public string Make { get; set; }
Denna rad deklarerar en egenskap (property) Make
av typen string
. Den är offentlig, vilket betyder att den kan nås från andra klasser. Syntaxen { get; set; }
tillåter att denna egenskap kan läsas och ändras.
public string Model { get; set; }
Liknande Make
-egenskapen, deklarerar denna rad en Model
-egenskap av typen string
med offentlig åtkomst och getter och setter.
public virtual void DisplayInfo()
Detta deklarerar en offentlig metod som heter DisplayInfo
som inte returnerar något värde (void
). Nyckelordet virtual
tillåter att denna metod kan överlagras i härledda klasser.
{
Detta öppnar metoddefinitionen för DisplayInfo
.
Console.WriteLine($"Make: {Make}, Model: {Model}");
Denna rad skriver ut egenskaperna Make
och Model
för Vehicle
till konsolen. Den använder interpolerade strängar (markerade med $
), vilket möjliggör infogning av egenskapsvärdena direkt i strängen.
}
Detta avslutar metoddefinitionen för DisplayInfo
.
}
Detta avslutar klassdefinitionen för Vehicle
.
public class ElectricCar : Vehicle
Denna rad definierar en ny klass ElectricCar
som ärver från (:
) klassen Vehicle
. Detta innebär att ElectricCar
kommer att ärva alla offentliga och skyddade medlemmar från Vehicle
.
{
Detta öppnar klassdefinitionen för ElectricCar
.
public int BatteryCapacity { get; set; }
Detta deklarerar en egenskap BatteryCapacity
av typen int
. Den representerar batterikapaciteten för den elektriska bilen.
public override void DisplayInfo()
Detta deklarerar en metod DisplayInfo
som överlagrar metoden DisplayInfo
i bas-klassen Vehicle
. Nyckelordet override
används för att modifiera eller utöka bas-klassmetoden.
{
Detta öppnar metoddefinitionen för den överlagrade DisplayInfo
-metoden.
Console.WriteLine($"Make: {Make}, Model: {Model}, Battery Capacity: {BatteryCapacity} kWh");
Denna rad skriver ut egenskaperna Make
, Model
och BatteryCapacity
för ElectricCar
. Det demonstrerar polymorfism där DisplayInfo
beter sig annorlunda i klassen ElectricCar
jämfört med klassen Vehicle
.
}
Detta avslutar metoddefinitionen för den överlagrade DisplayInfo
.
}
Detta avslutar klassdefinitionen för ElectricCar
.
public class Program
Detta deklarerar en klass med namnet Program
. Det är applikationens startpunkt.
{
Detta öppnar klassdefinitionen för Program
.
public static void Main()
Detta deklarerar Main
-metoden, som är startpunkten för en C#-applikation. static
betyder att den kan kallas utan att skapa en instans av klassen.
{
Detta öppnar metoddefinitionen för Main
.
Vehicle myCar = new ElectricCar { Make = "Tesla", Model = "Model S", BatteryCapacity = 85 };
Denna rad skapar en instans av ElectricCar
, tilldelar den till en variabel myCar
av typen Vehicle
. Detta demonstrerar polymorfism där en bas-klassreferens (Vehicle
) används för att hänvisa till ett objekt av en härledd klass (ElectricCar
). Objektet initieras med Make
, Model
och BatteryCapacity
genom användning av objektinitieringssyntax.
myCar.DisplayInfo();
Detta anropar metoden DisplayInfo
på myCar
. På grund av polymorfismen, körs den överlagrade versionen i ElectricCar
, som visar detaljer om den elektriska bilen.
}
Detta avslutar metoddefinitionen för Main
.
}
Detta avslutar klassdefinitionen för Program
.
Denna kod demonstrerar flera grundläggande koncept i C# såsom klasser, arv, polymorfism, egenskaper och metoder.
Den här sidan designades av 21C: