Middle
Kan een abstracte klasse een privé-methode bevatten en waarom?
sobes.tech AI
Antwoord van AI
Ja, dat is mogelijk.
De private methode in een abstracte klasse is alleen zichtbaar en toegankelijk binnen die abstracte klasse zelf. Dit kan handig zijn voor het implementeren van interne logica die nodig is voor de werking van andere methoden van die klasse (bijvoorbeeld hulpfuncties), terwijl deze logica verborgen blijft voor de afgeleide klassen.
Methoden die beschikbaar moeten zijn voor overschrijving of gebruik in afgeleide klassen worden gedeclareerd als protected of public.
<?php
abstract class AbstractExample {
abstract public function doSomething();
private function internalHelper() {
// Privé methode, alleen zichtbaar binnen AbstractExample
echo "Voer interne operatie uit.\n";
}
protected function protectedHelper() {
// Beschermde methode, ook zichtbaar in afgeleide klassen
$this->internalHelper(); // Aanroep van privé methode van binnenuit
echo "Voer beschermde operatie uit.\n";
}
}
class ConcreteExample extends AbstractExample {
public function doSomething() {
echo "Iets specifieks doen.\n";
$this->protectedHelper(); // Toegang tot protected methode
// $this->internalHelper(); // Fout: geen toegang tot privé methode
}
}
$obj = new ConcreteExample();
$obj->doSomething();