interfaces Flashcards
terminology
Wat is een interface
Een interface is een contract dat een klasse aangaat waarin staat welke functies en eigenschappen hij moet hebben.
syntax van de interface
interface INaamInterface
hoe gebruikt een klasse de interface
class Klasse : INaamInterface
Worden de functies, events en props geimplementeerd in de interface
Neen, dit gebeurt in de klasse waar de interface wordt in wordt gebruikt.
Wat moet een klasse juist overnemen van de interface
alles
Hoe schrijf je een functie neer in de interface zonder ze te implementeren?
public interface INaam
{
void functie();
}
Geen public, want impliciet. geen accolades, want de functie moet niet geimplementeerd worden in de interface.
Kan een klasse meerdere interfaces hebben?
ja
class Klasse : INaam1, INaam2,…
Kan een Klasse zowel overerven van een klasse en meerdere interfaces hebben?
ja,
class Klasse : Parent, INaam1, INaam2,…
Kan een klasse meerdere parents hebben?
Neen, niet in C#
Kunnen interfaces erven van elkaar?
ja,
interface INaam1 : INaam, INaam3,…
Verklaar polymorfisme met interfaces
Je kan instanties maken van de verschillende klassen gelinkt aan een interface, door deze als een INaam object aan te maken. Je kan deze dan gebruiken in een lijst van INaam objecten en in een foreach formule gebruiken
Wat is casting?
Casten is het expliciet aanpassen van een datatype naar een ander compatibel datatype.
IMovable moveable = (IMovable) Car
verklaar de is operator
De is operator is een keyword dat een true of false resultaat geeft bij een check of een object een bepaald datatype heeft.
if (doc is IStorable)
{
IStorable isDoc = (IStorable) doc;
}
als er gecast moet worden, kan dit helpen.
Wat doet de as operator
De as operator is een combi van de is operator en de casting zelf.
IStorable isDoc = doc as IStorable ==> returns casted version or null
if (isDoc != null)
{
what to do
}
Wat is loose coupling
Loose coupling is het gebruik van interfaces als parameters in een klasse om niet alle details al toe te voegen. Dit is voor gelaagd programmeren een belangrijke tool