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