Junior
Mi az az absztrakt osztály?
sobes.tech MI
Válasz az MI-től
Absztrakt osztály olyan osztály, amelyet nem lehet közvetlenül példányosítani, azaz nem lehet objektumát new segítségével létrehozni. Más osztályok ( leszármazottak) alap osztályként van tervezve.
Az absztrakt osztály fő jellemzői:
- Az
abstractkulcsszóval van deklarálva. - Tartalmazhat absztrakt és normál (konkrét) metódusokat.
- Az absztrakt metódusokat az
abstractkulcsszóval deklarálják, és nincs testük (megvalósításuk). Ezeket a leszármazott nem absztrakt osztályokban kell megvalósítani. - Tartalmazhat állandó értékeket és tulajdonságokat.
<?php
abstract class AbstractClass
{
// Absztrakt metódus - a leszármazott osztályban kell megvalósítani
abstract protected function abstractMethod();
// Normál metódus
public function concreteMethod()
{
echo "Ez egy konkrét metódus\n";
}
}
class ConcreteClass extends AbstractClass
{
// Az absztrakt metódus megvalósítása
protected function abstractMethod()
{
echo "Ez az absztrakt metódus megvalósítása\n";
}
}
// Nem lehet példányosítani az absztrakt osztályt
// $obj = new AbstractClass(); // Hiba
// Példányosítható a konkrét osztály
$obj = new ConcreteClass();
$obj->abstractMethod();
$obj->concreteMethod();
Az absztrakt osztályokat arra használják, hogy általános interfészt és funkcionalitást határozzanak meg egy kapcsolódó osztálycsoport számára, a megvalósítás részleteit pedig a konkrét leszármazott osztályokra hagyva. A kód felhasználói szempontjából lehetőség van az alosztályok objektumaival dolgozni, az alap absztrakt osztály típusát használva, ami biztosítja a polimorfizmust.