Junior
Ce este o clasă abstractă?
sobes.tech AI
Răspuns de la AI
O clasă abstractă este o clasă care nu poate fi instanțiată direct, adică nu se poate crea un obiect folosind new. Este destinată să fie utilizată ca clasă de bază pentru alte clase (subclase).
Caracteristicile principale ale unei clase abstracte:
- Se declară cu cuvântul cheie
abstract. - Poate conține atât metode abstracte, cât și metode normale (concrete).
- Metodele abstracte sunt declarate cu cuvântul cheie
abstractși nu au corp (implementare). Trebuie implementate în clasele non-abstracte care le moștenesc. - Poate conține valori constante și proprietăți.
<?php
abstract class AbstractClass
{
// Metodă abstractă - trebuie implementată în clasa fiică
abstract protected function abstractMethod();
// Metodă normală
public function concreteMethod()
{
echo "Aceasta este o metodă concretă\n";
}
}
class ConcreteClass extends AbstractClass
{
// Implementarea metodei abstracte
protected function abstractMethod()
{
echo "Aceasta este implementarea metodei abstracte\n";
}
}
// Nu se poate crea o instanță a unei clase abstracte
// $obj = new AbstractClass(); // Eroare
// Se poate crea o instanță a clasei concrete
$obj = new ConcreteClass();
$obj->abstractMethod();
$obj->concreteMethod();
Clasele abstracte sunt utilizate pentru a defini o interfață comună și funcționalitate pentru un grup de clase înrudite, lăsând detaliile de implementare pentru clasele fiice specifice. Din perspectiva utilizatorului de cod, se poate lucra cu obiecte ale claselor fiice, folosind tipul clasei de bază abstracte, ceea ce asigură polimorfismul.