🤔 Ken je inheritance?

Inheritance stelt ons in staat om nieuwe klassen te maken die het gedrag van reeds bestaande klassen hergebruiken, uitbreiden en/of wijzigen. De bestaande klasse noemen we de superklasse en de nieuwe klasse die we maken noemen we de afgeleide klasse. In Dart, kunnen we slechts één superclass erven, maar overerving is transitief. Als de class Hatch is afgeleid van de class Car en deze klasse is afgeleid van class Vehicle, dan zal Hatch zijn afgeleid van Vehicle. Gebruik extends om een afgeleide klasse te maken, en super wanneer u naar de superklasse wilt verwijzen.

Wanneer class Car extends Vehicle, zullen alle eigenschappen, variabelen, functies die in class Vehicle zijn geïmplementeerd beschikbaar zijn in class Car.

Ook is het mogelijk om superklasse functies te overschrijven.

Zo: Je gebruikt extends wanneer je een specifiekere versie van een klasse wilt maken.

2⃣️ Met behulp van implements

Stel dat je een eigen klasse Auto wilt maken, zonder alle eigenschappen, variabelen en functies van de klasse Voertuig te erven, maar je wilt alleen het type Voertuig erven. Om dit te doen, moet de klasse Auto de interface Voertuig implementeren.

Dart staat u toe om meerdere klassen of interfaces te implementeren.

✍️ Voorbeeld

Stel u voor dat u een vogel en een eend moet implementeren, beide zijn dieren, maar de vogel kan alleen vliegen en de eend kan vliegen en zwemmen. We zullen dit doen met wat we tot nu toe weten.

Eerst maken we de superklasse en de gedragingen:

Nu maken we Bird en Duck, die de juiste gedragingen implementeren:

Merk op dat we met implements de functies fly en swim moesten implementeren, herhalende code! Het was niet mogelijk om de gedragsimplementaties op deze manier te erven. Is er een manier om de code voor deze gedragingen te hergebruiken? Ja, dat zullen we zo zien!

3⃣️ Met

Mixin is een ander type structuur, die alleen kan worden gebruikt met het trefwoord with en wordt gebruikt om gemeenschappelijke codefragmenten op te nemen, ik zou zeggen, de code te hergebruiken.

Mixins zijn een manier om de code van een klasse te hergebruiken in meerdere klassehiërarchieën (dartlang.org).

Hier ziet u hoe mixins de vorige implementatie uitvoeren:

U kunt abstract class vervangen door mixin als u dat liever hebt.

Mixins zijn een manier om een familie van bewerkingen en toestanden te abstraheren en opnieuw te gebruiken, het is vergelijkbaar met het hergebruik dat u krijgt door een klasse uit te breiden, maar het zijn niet meerdere overervingen, er is nog steeds maar één superklasse. Ze werken door de mixin implementatie boven op de superklasse te zetten om een nieuwe klasse te creëren. In het voorbeeld hierboven is het mogelijk om een functie te herschrijven, mixins maakt dit mogelijk.

✌️Dank

Dat was mijn eerste verhaal op Medium, ik hoop dat je het leuk vond 😃.

Ik wil Romain Rastel bedanken voor het ongelooflijke verhaal over mixins, ik raad je aan om te lezen om nog meer over dit onderwerp te begrijpen.

Als er vragen zijn, voel je vrij om ze hieronder te stellen.

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.