Junior
Čo je to abstraktná trieda?
sobes.tech AI
Odpoveď od AI
Abstraktná trieda je trieda, ktorú nie je možné priamo inštancovať, teda nie je možné vytvoriť jej objekt pomocou new. Je určená na použitie ako základná trieda pre iné triedy (potomkovia).
Hlavné vlastnosti abstraktnej triedy:
- Je deklarovaná kľúčovým slovom
abstract. - Môže obsahovať ako abstraktné, tak aj bežné (konkrétne) metódy.
- Abstraktné metódy sú deklarované s kľúčovým slovom
abstracta nemajú telo (implementáciu). Musia byť implementované v neabstraktných triedach potomkoch. - Môže obsahovať konštantné hodnoty a vlastnosti.
<?php
abstract class AbstractClass
{
// Abstraktná metóda - musí byť implementovaná v triede potomkovi
abstract protected function abstractMethod();
// Bežná metóda
public function concreteMethod()
{
echo "Toto je konkrétna metóda\n";
}
}
class ConcreteClass extends AbstractClass
{
// Implementácia abstraktnej metódy
protected function abstractMethod()
{
echo "Toto je implementácia abstraktnej metódy\n";
}
}
// Nie je možné vytvoriť inštanciu abstraktnej triedy
// $obj = new AbstractClass(); // Chyba
// Je možné vytvoriť inštanciu konkrétnej triedy
$obj = new ConcreteClass();
$obj->abstractMethod();
$obj->concreteMethod();
Abstraktné triedy sa používajú na definovanie spoločného rozhrania a funkčnosti pre skupinu súvisiacich tried, pričom detaily implementácie sú ponechané na špecifické potomky. Z pohľadu používateľa kódu je možné pracovať s objektmi potomkov, využívajúc typ základnej abstraktnej triedy, čo zabezpečuje polymorfizmus.