Interfaces (introductie) en implementatie van meerdere interfaces
Definieer interfaces als contracten, implementeer meerdere interfaces in één klasse, gebruik interfacegebaseerde polymorfie en leer de basis van expliciete interface-implementatie.
Interfaces (introductie) en implementatie van meerdere interfaces is een gratis C# Academy-les op CoddyKit. Dit is les 2 van 3. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject C# Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus C# Academy bevat in totaal 3 lessen.
Overzicht van interfaces
Doel: Programmeer tegen interfaces voor flexibele code.
- Interfaces beschrijven wat, niet hoe
- Implementeer meerdere interfaces
- Geef interfaces door aan functies
- Gebruik expliciete implementatie om naamconflicten op te lossen
Meerdere interfaces implementeren
Interfaces definiëren een contract. Eén klasse kan meerdere interfaces implementeren om verschillende rollen uit te drukken.
using System;
public interface IPlayable
{
void Play();
}
public interface IHasDuration
{
int DurationSeconds { get; }
}
public class Song : IPlayable, IHasDuration
{
private readonly string _title;
private readonly int _seconds;
public Song(string title, int seconds)
{
_title = title;
_seconds = seconds;
}
public int DurationSeconds { get { return _seconds; } }
public void Play()
{
Console.WriteLine("Playing " + _title + " (" + _seconds + "s)");
}
}
public class Program
{
public static void Main(string[] args)
{
Song s = new Song("Hello", 5);
s.Play();
Console.WriteLine("Duration = " + s.DurationSeconds);
}
}
Polymorfisme met interfaces
Accepteer in methoden een type van het interface. Aanroepers kunnen elke implementatie doorgeven.
using System;
public interface IPrintable
{
void Print();
}
public class Report : IPrintable
{
private readonly string _text;
public Report(string text) { _text = text; }
public void Print() { Console.WriteLine("Report: " + _text); }
}
public class Label : IPrintable
{
private readonly string _text;
public Label(string text) { _text = text; }
public void Print() { Console.WriteLine("Label: " + _text); }
}
public class Program
{
// Works with any IPrintable (polymorphism)
static void PrintAll(IPrintable item)
{
item.Print();
}
public static void Main(string[] args)
{
PrintAll(new Report("Sales Q1"));
PrintAll(new Label("Fragile"));
}
}
Expliciete implementatie
Expliciete implementatie maakt leden met dezelfde naam ondubbelzinnig en verbergt ze voor de buitenkant van de klasse.
using System;
public interface ILogger { void Write(string msg); }
public interface IFileWriter { void Write(string msg); }
public class DualWriter : ILogger, IFileWriter
{
// Explicit implementations: only visible via the interface reference
void ILogger.Write(string msg) { Console.WriteLine("[LOG] " + msg); }
void IFileWriter.Write(string msg) { Console.WriteLine("[FILE] " + msg); }
public void Demo()
{
Console.WriteLine("DualWriter ready");
}
}
public class Program
{
public static void Main(string[] args)
{
DualWriter dw = new DualWriter();
dw.Demo();
ILogger log = dw;
IFileWriter file = dw;
log.Write("started");
file.Write("saved");
}
}
Collecties van interfaces
Bewaar verschillende implementaties in een lijst van het interfacetype en doorloop die op uniforme wijze.
using System;
using System.Collections.Generic;
public interface ITask
{
void Run();
}
public class EmailTask : ITask
{
public void Run() { Console.WriteLine("Send email"); }
}
public class BackupTask : ITask
{
public void Run() { Console.WriteLine("Run backup"); }
}
public class Program
{
public static void Main(string[] args)
{
List<ITask> tasks = new List<ITask>();
tasks.Add(new EmailTask());
tasks.Add(new BackupTask());
foreach (ITask t in tasks)
{
t.Run(); // calls the right implementation
}
}
}
Tips voor interfaces
Tips:
- Geef de voorkeur aan kleine interfaces die één rol beschrijven.
- Gebruik interfaces voor tests, zodat je implementaties kunt verwisselen.
- In C# 6 hebben interfaces geen velden of methodelichamen.
- Implementeer meerdere interfaces om gedrag te combineren.
Het concept van interfaces
Samenvatting
Samenvatting: Interfaces zijn contracten en ondersteunen meerdere implementaties per klasse. Geef interfaces door aan functies, houd ze klein en gebruik expliciete implementatie om conflicten op te lossen.
Leer C# met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 93
- Lessen
- 346
Veelgestelde vragen
Is de les “Interfaces (introductie) en implementatie van meerdere interfaces” gratis?
Ja — de volledige tekst van “Interfaces (introductie) en implementatie van meerdere interfaces” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus C# Academy wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus C# Academy bevat in totaal 3 lessen.
Wat leer ik in “Interfaces (introductie) en implementatie van meerdere interfaces”?
Definieer interfaces als contracten, implementeer meerdere interfaces in één klasse, gebruik interfacegebaseerde polymorfie en leer de basis van expliciete interface-implementatie. Je oefent met C# Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met C# Academy te beginnen?
Ervaring vooraf is niet nodig. C# Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 2 van 3.
Hoe lang duurt de les “Interfaces (introductie) en implementatie van meerdere interfaces”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over C# Academy?
Ja. Elke les over C# Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- virtual/override/sealed; abstracte klassen
- Interfaces (introductie) en implementatie van meerdere interfaces
- Polymorfie en dynamische dispatch