🤔 Kender du til arv?

Arv giver os mulighed for at oprette nye klasser, der genbruger, udvider og/eller ændrer allerede eksisterende klassers adfærd. Den allerede eksisterende klasse kaldes superklasse, og den nye klasse, vi opretter, kaldes afledt klasse. I Dart kan vi kun arve én superklasse, men arvelighed er transitiv. Hvis class Hatch er afledt af class Car, og denne klasse er afledt af class Vehicle, så vil Hatch være afledt af Vehicle. Brug extends til at oprette afledt klasse, og super når du vil henvise til superklassen.

Når class Car extends Vehicle, vil alle egenskaber, variabler, funktioner implementeret i class Vehicle være tilgængelige i class Car.

Det er også muligt at overskrive superklassens funktioner.

Sådan: Du bruger extends, når du vil oprette en mere specifik version af en klasse.

2⃣️ Brug af implements

Sæt, du vil oprette din egen Car-klasse uden at arve alle egenskaber, variabler og funktioner fra Vehicle-klassen, men du vil kun arve Vehicle-typen. For at gøre dette skal Car-klassen implementere grænsefladen Vehicle.

Dart giver dig mulighed for at implementere flere klasser eller grænseflader.

✍️ Eksempel

Forestil dig, at du skal implementere en fugl og en and, begge er dyr, men fuglen kan kun flyve, og anden kan både flyve og svømme. Vi vil gøre dette ved hjælp af det, vi kender indtil videre:

Først vil vi oprette superklasse og adfærd:

Nu vil vi oprette Bird og Duck, der implementerer korrekt adfærd:

Bemærk, at ved hjælp af implements skulle vi implementere fly og swim funktioner, gentagelse af kode! Det var ikke muligt at arve adfærdsimplementeringerne på denne måde. Er der en måde at genbruge koden for disse adfærdsmodeller på? Ja, det får vi at se næste gang!

3⃣️ Brug af med

Mixin er en anden type struktur, som kun kan bruges med nøgleordet with og bruges til at inkludere fælles kodestumper, vil jeg sige, genbruge koden.

Mixins er en måde at genbruge en klasses kode i flere klassehierarkier (dartlang.org).

Her er hvordan mixins udfører den tidligere implementering:

Du kan udskifte abstract class til mixin hvis du foretrækker det.

Mixins er en måde at abstrahere og genbruge en familie af operationer og tilstand på, det svarer til det genbrug du får ved at udvide en klasse, men er ikke flere arvegange, der er stadig kun én overklasse. De fungerer ved at lægge mixin-implementeringen oven på superklassen for at skabe en ny klasse. I eksemplet ovenfor er det muligt at omskrive en funktion, mixins tillader dette.

✌️Thanks

Det var min første historie på Medium, jeg håber du kunne lide 😃.

Jeg vil gerne takke Romain Rastel for den utrolige historie om mixins, jeg råder dig til at læse for at forstå endnu mere om dette emne.

Nogle spørgsmål, du er velkommen til at stille dem nedenfor.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.