Co je abstraktní třída?
Nejprve je důležité pochopit, co je to abstraktní třída je v PHP . Říká se, že třída, kterou nelze vytvořit instancí nebo z ní udělat přímo objekt, je abstraktní . Místo toho ji ostatní třídy, které z ní zdědí, používají jako základní nebo nadřazenou třídu. Abstraktní třídy neposkytují konkrétní implementaci odvozených tříd; spíše nastiňují jejich strukturu a chování. To umožňuje odvozeným třídám zachovat si své vlastní charakteristické chování a přitom se stále držet základního rámce poskytovaného abstraktní třídou.
Jako část PHP „s OTEVŘENO , abstraktní třídy slouží jako prostředek k definování základní kolekce charakteristik, které mohou být sdíleny více odvozenými třídami. Vývojáři mohou poskytnout šablonu pro třídy, které budou dědit z abstraktní třídy tím, že ji vytvoří. Aby bylo zajištěno, že všechny odvozené třídy odpovídají stejnému rozhraní, slouží tento návrh jako smlouva mezi abstraktní třída a odvozené třídy. Specifika implementace jsou ponechána na každé podtřídě, ale toto rozhraní specifikuje společné metody, které jsou nezbytné pro všechny podtřídy. Změny provedené v abstraktní třídě se okamžitě rozšíří do všech odvozených tříd, které ji používají, což umožní více opakované použití kódu a snadnější údržbu.
Jak fungují abstraktní třídy v PHP?
Když „abstraktní“ klíčové slovo se používá k definování třídy, PHP je informováno, že třídu nelze vytvořit. Oba abstraktní a neabstraktní metody lze nalézt v abstraktní třídy . Abstraktní metody jsou definovány s 'abstraktní' klíčové slovo a neposkytují implementaci – jednoduše deklarují podpis metody. Tyto abstraktní metody musí být implementovány odvozenými třídami, které jsou odvozeny z abstraktní třída . Neabstraktní metody na druhé straně poskytují výchozí implementaci, kterou se mohou odvozené třídy rozhodnout přepsat.
Podívejme se na příklad:
abstraktní třída Mě {
abstraktní funkce O mně ( $jméno , $věk ) ;
}
třída Intro rozšiřuje Mě {
funkce O mně ( $jméno , $věk ) {
echo 'Jmenuji se $jméno a můj věk je $věk ' ;
}
}
$a = Nový Intro ( ) ;
$a -> O mně ( 'Bob' , dvacet jedna ) ;
?>
Ve výše uvedeném kódu je abstraktní metoda v abstraktní rodičovská třída „Já“ má dva argumenty, „jméno“ a „věk“. Podřízená třída ‚Intro‘ také definuje stejnou funkci s těmito dvěma argumenty a příkaz intro je vytištěn na obrazovce.
Výstup
Výhody abstraktních tříd v PHP
1: Znovupoužitelnost kódu
Abstraktní třídy v PHP mají velkou výhodu: umožňují opětovné použití kódu. Definováním sdíleného chování v an abstraktní třída , můžete se vyhnout opakování kódu v mnoha různých podtřídách. Díky tomu je správa a údržba kódu jednodušší. Abstraktní třídy také vám pomohou prosadit konzistenci a standardy ve všech vašich podtřídách.
2: Definujte abstraktní vlastnosti
v PHP , abstraktní třídy mají užitečnou funkci tzv abstraktní vlastnosti. Tyto vlastnosti umožňují nastavit určité požadavky na podtřídy. Pokud například vytváříte systém pro zvířata, můžete nastavit abstraktní vlastnost s názvem $jméno to vyžaduje, aby každá podtřída měla vlastnost name. To může pomoci zajistit, že váš kód bude mít konzistentní strukturu a bude jednodušší na pochopení a údržbu.
Závěr
Schopnost navrhnout sadu funkcí, které mohou být sdíleny několika třídami abstraktní třídy užitečné pro vývojáře. To vede k většímu opětovnému použití kódu a snadnější údržbě, protože jakékoli změny provedené v abstraktní třídě automaticky ovlivní všechny třídy, které z ní dědí. Při správném použití, abstraktní třídy může výrazně zlepšit strukturu a organizaci kódu v objektově orientovaném projektu. Je však důležité je používat uvážlivě, protože jejich nadměrné používání může vést k příliš složitému a obtížně udržovatelnému kódu.