Labo: Interfaces

Zie Scherp Scherper - Hoofdstuk 17 (in opbouw)

Hoofdstuk 17 in een notendop

interface: een belofte, geen code of instantievariabelen

De klasse moet alles uit de interface implementeren

Eén parent, wel meerdere interfaces, de parent eerst

Interface voor “kan iets”, abstracte klasse voor “is een”

Met is en as bevraag je een object op een interface

interface IVloeker { void Vloek(); }
class Politieker : Mens, IVloeker
{
    public void Vloek()
    {
        Console.WriteLine("Godvermiljaardedju!");
    }
}

Mens[] mensjes = { new Student(), new Politieker() };
foreach (Mens mens in mensjes)
{
    if (mens is IVloeker vloeker)
        vloeker.Vloek();
    else
        mens.Spreek();
}
Hoi!
Godvermiljaardedju!

De oefeningen

Code lezen en verbeteren

Stevens superhelden Kotfeest: wie draait de muziek?

Eigen interfaces

CO2-teller van de campus Pokémon interfaces

Interfaces uit .NET

Figuren sorteren PokéDex met foreach (PRO)

Alles samen

Hacker Simulator Final Essentials, GPT

Groter project

Game (PRO)

Oefeningen H17

Alles is Essential, behalve de gestippelde.

Nieuw in H17

Interface: naam met I, geen public, geen body

Klasse: alles uitschrijven, public, parent eerst

List<IMinister> en if (mens is IVloeker vloeker)

IComparable bestaat al: enkel CompareTo