🤔 Znáte dědičnost?

Dědičnost nám umožňuje vytvářet nové třídy, které znovu používají, rozšiřují a/nebo upravují chování již existujících tříd. Již existující třída se nazývá nadtřída a nová třída, kterou vytváříme, se nazývá odvozená třída. V Dartu můžeme dědit pouze jednu nadtřídu, ale dědičnost je tranzitivní. Pokud je třída class Hatch odvozena od třídy class Car a tato třída je odvozena od třídy class Vehicle, pak bude třída Hatch odvozena od třídy Vehicle. Pro vytvoření odvozené třídy použijte extends a super, když se chcete odkázat na nadtřídu.

Pokud class Car extends Vehicle, všechny vlastnosti, proměnné, funkce implementované v class Vehicle budou dostupné v class Car.

Také je možné přepsat funkce nadtřídy.

Takže: extends použijete, když chcete vytvořit specifičtější verzi třídy.

2⃣️ Použití implements

Předpokládejme, že chcete vytvořit vlastní třídu Auto, aniž byste zdědili všechny vlastnosti, proměnné a funkce třídy Vozidlo, ale chcete zdědit pouze typ Vozidlo. K tomu musí třída Auto implementovat rozhraní Vozidlo.

Dart umožňuje implementovat více tříd nebo rozhraní.

✍️ Příklad

Představte si, že potřebujete implementovat ptáka a kachnu, oba jsou zvířata, ale pták umí pouze létat a kachna umí létat a plavat. Uděláme to pomocí toho, co zatím známe.

Nejprve vytvoříme nadtřídu a chování:

Nyní vytvoříme Bird a Duck, implementující správné chování:

Všimněte si, že pomocí implements jsme museli implementovat funkce fly a swim, opakující se kód! Tímto způsobem nebylo možné dědit implementace chování. Existuje způsob, jak kód těchto chování použít opakovaně? Ano, uvidíme příště!

3⃣️ Použití s

Mixin je jiný typ struktury, který lze použít pouze s klíčovým slovem with a slouží k zahrnutí společných fragmentů kódu, řekl bych, k opakovanému použití kódu.

Mixiny jsou způsobem opakovaného použití kódu třídy v hierarchii více tříd (dartlang.org).

Tady je, jak mixiny provádějí předchozí implementaci:

Můžeš nahradit abstract class na mixin, pokud chceš.

Mixiny jsou způsob, jak abstrahovat a znovu použít rodinu operací a stavů, je to podobné opětovnému použití, které získáš rozšířením třídy, ale není vícenásobné dědění, stále je jen jedna nadtřída. Fungují tak, že implementaci mixinu umístíte nad nadtřídu a vytvoříte novou třídu. V příkladu výše je možné přepsat funkci, mixiny to umožňují.

✌️Díky

To byl můj první článek na Médiu, doufám, že se vám líbil 😃.

Rád bych poděkoval Romainu Rastelovi za neuvěřitelný příběh o mixinech, doporučuji přečíst, abyste o tomto tématu pochopili ještě víc.

Jakékoliv dotazy, neváhejte se zeptat níže.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.