anchor.diff:  ----
   Op deze manier krijg één van de twee methodes een body en blijft er maar één abstract method over. Hierdoor blijft ook deze interface een `Functional interface` en kan deze derhalve als `lambda` gebruikt worden. +
   
  -Met `default methods` wordt het nu bijvoorbeeld ook mogelijk om multiple inheritance te gebruiken. 
  +Een andere plek waar ikzelf `Default methods` gebruik is in unit-tests. De tests zijn vaak hetzelfde, alleen de manier waarop ze hun input krijgen niet. De tests zijn dan geïmplementeerd als `Default methods` en er zijn `Abstract methods` toegevoegd om de tests van hun input te voorzien. +
  +
  +Daarnaast wordt het met `default methods` bijvoorbeeld ook mogelijk om multiple inheritance te gebruiken. 
   
   === Multiple inheritance
   Multiple inheritance wordt als volgt omschreven door https://en.wikipedia.org/wiki/Multiple_inheritance[wikipedia]:  *_Multiple inheritance_* _is a feature of some object-oriented computer programming languages in which an object or class can inherit characteristics and features from more than one parent object or parent class._ +
   
  -In Java 8 is dat deels mogelijk gemaakt d.m.v. interfaces met default methods. Ik zeg hier heel bewust deels, omdat het multiple inheritance m.b.t. state niet mogelijk is, omdat interface geen state hebben. 
  +In Java 8 is dat deels mogelijk gemaakt d.m.v. interfaces met default methods. Ik zeg hier heel bewust deels, omdat het multiple inheritance m.b.t. state niet mogelijk is, omdat interface geen state hebben. Hier een klein voorbeeld. 
  +
   [source, java]
   ----
   public interface Logger
  
positive.code: 			.collect(toList());
  }
  ----
  Doordat dit wel iets zou veranderen aan de aanroep van de methode, de juiste class moet namelijk meegegeven worden, heb ik de methodes wel in de enums laten zien, maar ziet de implementatie nu nog zo uit.
  
  [source, java]
  ----
  
negative.code: Het bovenstaande voorbeeld is natuurlijk erg eenvoudig, helemaal omdat beide interfaces ook nog eens dezelfde functionaliteit bevatten. Het kiezen van de juiste interface zou wellicht ook at runtime kunnen en op die manier bijvoorbeeld een soort `feature toggles` mogelijk te maken. Dit heb ik echter niet getest, maar zal wellicht leuk zijn voor een volgende blog.
  
  == Conclusie
  Met de komst van Java 8 is er veel veranderd m.b.t. de interface. De toepassingen voor interface zijn met de komst van `static methods` en `default methods` alleen maar groter geworden. Code is in sommige gevallen beter te structureren en te groeperen. Je zou op die manier ook de functionaliteit van je class uit kunnen breiden, zonder de class-hierarchy te vergroten. Al met al kunnen de wijzigingen m.b.t. interfaces een grote impact hebben op onze codebase.
  
  