Introduktion til interfaces
Lær, hvordan interfaces definerer kontrakter for klasser og øger kodens fleksibilitet
Introduktion til interfaces er en gratis C# Academy-lektion på CoddyKit. Dette er lektion 1 af 6. 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 6 lektioner i alt.
Introduktion til grænseflader
Velkommen til den første lektion i avancerede programmeringskoncepter! I denne lektion lærer du om grænseflader, deres formål, og hvordan du kan bruge dem til at opnå abstraktion og fleksibilitet i dine C#-programmer. Lad os komme i gang!

Hvad er en grænseflade?
En grænseflade er en kontrakt, der definerer et sæt metoder og egenskaber, som en klasse skal implementere. Den indeholder ikke selv en implementering, men sikrer, at alle klasser, der implementerer grænsefladen, følger en bestemt struktur.
Eksempel: En grænseflade til et "Vehicle" kan definere metoder som Start() og Stop(), som alle køretøjer skal implementere.
Vigtigt: Grænseflader gør det muligt at udforme fleksibel og genanvendelig kode ved at adskille adfærd fra implementering.
Definere en grænseflade
For at definere en grænseflade i C# skal du bruge nøgleordet interface. Eksempel:
Tip: Efter konvention begynder navne på grænseflader i C# med bogstavet I.
using System;
interface IVehicle {
void Start();
void Stop();
}
Implementere en grænseflade
For at implementere en grænseflade skal en klasse definere alle de metoder og egenskaber, der er erklæret i grænsefladen. Eksempel:
Vigtigt: En klasse kan implementere flere grænseflader for at understøtte flere former for adfærd.
using System;
interface IVehicle {
void Start();
void Stop();
}
class Car : IVehicle {
public void Start() {
Console.WriteLine("Car is starting.");
}
public void Stop() {
Console.WriteLine("Car is stopping.");
}
}
class Program {
static void Main() {
IVehicle myCar = new Car();
myCar.Start();
myCar.Stop();
}
}
Hvorfor bruge grænseflader?
Grænseflader har flere fordele:
- Abstraktion: Definér adfærd uden at angive implementeringen.
- Fleksibilitet: En klasse kan implementere flere grænseflader, så den kan understøtte flere roller.
- Konsistens: Håndhæv en fælles struktur på tværs af relaterede klasser.
Tip: Brug grænseflader, når du vil definere en fælles kontrakt uden at bestemme, hvordan den skal opfyldes.
Kombinere flere grænseflader
En klasse kan implementere flere grænseflader for at kombinere forskellige former for adfærd. Eksempel:
using System;
interface IVehicle {
void Start();
void Stop();
}
interface IRadio {
void PlayMusic();
}
class Car : IVehicle, IRadio {
public void Start() {
Console.WriteLine("Car is starting.");
}
public void Stop() {
Console.WriteLine("Car is stopping.");
}
public void PlayMusic() {
Console.WriteLine("Playing music.");
}
}
class Program {
static void Main() {
Car myCar = new Car();
myCar.Start();
myCar.PlayMusic();
myCar.Stop();
}
}
Øvelsesopgave
Opret en grænseflade IShape med en metode CalculateArea(). Implementér denne grænseflade i klasserne Rectangle og Circle. Eksempel:
using System;
interface IShape {
double CalculateArea();
}
class Rectangle : IShape {
public double Width { get; set; }
public double Height { get; set; }
public double CalculateArea() {
return Width * Height;
}
}
class Circle : IShape {
public double Radius { get; set; }
public double CalculateArea() {
return Math.PI * Radius * Radius;
}
}
class Program {
static void Main() {
IShape rectangle = new Rectangle { Width = 5, Height = 4 };
IShape circle = new Circle { Radius = 3 };
Console.WriteLine("Rectangle Area: " + rectangle.CalculateArea());
Console.WriteLine("Circle Area: " + circle.CalculateArea());
}
}
Bedste praksis for brug af grænseflader
Her er nogle anbefalinger:
- Brug grænseflader til at definere kontrakter, som klasser skal følge.
- Foretræk grænseflader frem for nedarvning for klasser, der ikke er relaterede, men deler fælles adfærd.
- Hold grænseflader fokuserede, og undgå at medtage unødvendige metoder eller egenskaber.
Tip: Grænseflader bør beskrive, hvad en klasse gør, ikke hvordan den gør det.
Godt gået!
Tillykke! Du har lært det grundlæggende om grænseflader, og hvordan du kan bruge dem til at opnå abstraktion og fleksibilitet i dine programmer. I næste lektion dykker vi ned i abstrakte klasser og lærer, hvordan de adskiller sig fra grænseflader. Lad os fortsætte med at kode!

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 “Introduktion til interfaces” gratis?
Ja — hele teksten til “Introduktion til interfaces” 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 6 lektioner i alt.
Hvad lærer jeg i “Introduktion til interfaces”?
Lær, hvordan interfaces definerer kontrakter for klasser og øger kodens fleksibilitet 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 1 af 6.
Hvor lang tid tager lektionen “Introduktion til interfaces”?
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
- Introduktion til interfaces
- Abstrakte klasser
- Statiske medlemmer og metoder
- Udforsk enums og structs
- Delegates og events
- Arbejde med samlinger: Lister, ordbøger og køer