Sobes.tech
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 abstract a 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.