Junior
Wat is een abstracte klasse?
sobes.tech AI
Antwoord van AI
Een abstracte klasse is een klasse die niet rechtstreeks kan worden geïnstantieerd, dat wil zeggen dat je geen object ervan kunt maken met new. Het is bedoeld om te worden gebruikt als basis voor andere klassen (subklassen).
De belangrijkste kenmerken van een abstracte klasse:
- Wordt gedeclareerd met het sleutelwoord
abstract. - Kan zowel abstracte als normale (concrete) methoden bevatten.
- Abstracte methoden worden gedeclareerd met het sleutelwoord
abstracten hebben geen lichaam (implementatie). Ze moeten worden geïmplementeerd in niet-abstracte subklassen. - Kan constante waarden en eigenschappen bevatten.
<?php
abstract class AbstractClass
{
// Abstracte methode - moet worden geïmplementeerd in de subklasse
abstract protected function abstractMethod();
// Normale methode
public function concreteMethod()
{
echo "Dit is een concrete methode\n";
}
}
class ConcreteClass extends AbstractClass
{
// Implementatie van de abstracte methode
protected function abstractMethod()
{
echo "Dit is de implementatie van de abstracte methode\n";
}
}
// Kan geen instantie van een abstracte klasse maken
// $obj = new AbstractClass(); // Fout
// Kan wel een instantie van de concrete klasse maken
$obj = new ConcreteClass();
$obj->abstractMethod();
$obj->concreteMethod();
Abstracte klassen worden gebruikt om een gemeenschappelijk interface en functionaliteit te definiëren voor een groep gerelateerde klassen, waarbij de implementatiedetails worden overgelaten aan de specifieke subklassen. Vanuit het perspectief van de codegebruiker kan men werken met objecten van de subklassen, gebruikmakend van het type van de abstracte basisklasse, wat polymorfisme garandeert.