đŸ€” KĂ€nner du till arv?

Arv gör det möjligt att skapa nya klasser som ÄteranvÀnder, utökar och/eller Àndrar befintliga klassers beteende. Den redan existerande klassen kallas superklass och den nya klassen vi skapar kallas hÀrledd klass. I Dart kan vi bara Àrva en superklass, men arv Àr transitivt. Om class Hatch hÀrstammar frÄn class Car och den hÀr klassen hÀrstammar frÄn class Vehicle kommer Hatch att hÀrledas frÄn Vehicle. AnvÀnd extends för att skapa en hÀrledd klass och super nÀr du vill hÀnvisa till överklassen.

NÀr class Car extends Vehicle kommer alla egenskaper, variabler och funktioner som Àr implementerade i class Vehicle att vara tillgÀngliga i class Car.

Det Àr ocksÄ möjligt att överskriva funktioner i överklassen.

SÄ: Du anvÀnder extends nÀr du vill skapa en mer specifik version av en klass.

2âƒŁïž Using implements

Antag att du vill skapa en egen Car-klass, utan att Àrva alla egenskaper, variabler och funktioner frÄn Vehicle-klassen, men att du bara vill Àrva fordonstypen Vehicle. För att göra detta mÄste Car-klassen implementera grÀnssnittet Vehicle.

Dart gör det möjligt att implementera flera klasser eller grÀnssnitt.

✍ Exempel

FörestÀll dig att du behöver implementera en fÄgel och en anka, bÄda Àr djur, men fÄgeln kan bara flyga och ankan kan flyga och simma. Vi gör detta med hjÀlp av det vi vet hittills.

Först skapar vi superklass och beteenden:

Nu skapar vi Bird och Duck, som implementerar de rÀtta beteendena:

BemÀrk att vi med hjÀlp av implements var tvungna att implementera funktionerna fly och swim, vilket innebÀr att vi repeterar kod! Det var inte möjligt att Àrva beteendeimplementationerna pÄ detta sÀtt. Finns det ett sÀtt att ÄteranvÀnda koden för dessa beteenden? Ja, det fÄr vi se hÀrnÀst!

3âƒŁïž Using with

Mixin Àr en annan typ av struktur, som bara kan anvÀndas med nyckelordet with och anvÀnds för att inkludera vanliga kodutdrag, jag skulle sÀga, ÄteranvÀnda koden.

Mixins Ă€r ett sĂ€tt att Ă„teranvĂ€nda en klass’ kod i flera klasshierarkier (dartlang.org).

HÀr Àr hur mixins utför den tidigare implementationen:

Du kan ersÀtta abstract class till mixin om du föredrar det.

Mixins Àr ett sÀtt att abstrahera och ÄteranvÀnda en familj av operationer och tillstÄnd, det liknar ÄteranvÀndningen du fÄr nÀr du förlÀnger en klass, men Àr inte flera arv, det finns fortfarande bara en överklass. De fungerar genom att mixin-implementationen lÀggs ovanpÄ superklassen för att skapa en ny klass. I exemplet ovan Àr det möjligt att skriva om en funktion, mixins tillÄter detta.

✌Tack

Det var min första berĂ€ttelse pĂ„ Medium, jag hoppas du gillade 😃.

Jag vill tacka Romain Rastel för den otroliga berÀttelsen om mixins, jag rÄder dig att lÀsa för att förstÄ Ànnu mer om detta Àmne.

NÄgra frÄgor, stÀll dem gÀrna nedan.

LĂ€mna ett svar

Din e-postadress kommer inte publiceras.