Abstrakte klasser er klasser, der bl.a. indeholder abstrakte metoder. Se følgende kodeeksempler
<?php
abstract class MyClass {
abstract protected function doSomethingNice();
}
Her over er oprettet en abstrakt klasse, der indeholder en abstrakt metode. Tanken bag denne metode er, at man kalder den forudannonceret eller adviceret. Som man kan se har metoden ikke nogen body, men man har tænkt sig, at bruge metoden i en sub-class.
Der gælder følgende for en abstrakt klasse:
- Den kan ikke instantieres. Tanken er, at man laver en sub-class som man instantierer
Der gælder følgende for en abstrakt metode:
- Den adviceres i en abstrakt klasse
- Den har ingen body i den abstrakte klasse
- Den skal oprettes i alle sub-classes
- Når den oprettes i en sub-class skal den have samme eller mindre striks access modifier. Det vil sige, at hvis den er sat til private i den abstrakte klasse skal den i en sub-class sættes til private, protected eller public.
- I en sub-class skal den have de samme argumenter som i den abstrakte klasse. Metoden kan dog have flere argumenter i en sub-class.
<?php
abstract class MyClass {
abstract protected function doSomethingNice();
}
class MyNewClass extends MyClass {
protected function doSomethingNice(){
echo "Thank you for visiting Snippets.dk";
}
}