A final kulcsszó
A PHP 5 bevezeti a final kulcsszót, ami megakadályozza ezzel a kulcsszóval definiált metódusok felülÃrását az öröklÅ‘ osztályokban. Ha az oszály a final kulcsszóval van definiálva, nem lehet már egy osztálynak se szülÅ‘ osztálya.
Example#1 Zárt metódus példa
<?php
class BaseClass {
public function test() {
echo "BaseClass::test() meghÃvva\n";
}
final public function moreTesting() {
echo "BaseClass::moreTesting() meghÃvva\n";
}
}
class ChildClass extends BaseClass {
public function moreTesting() {
echo "ChildClass::moreTesting() meghÃvva\n";
}
}
// Results in Fatal error: Cannot override final method BaseClass::moreTesting()
// Fatális hiba: Nem lehet felülÃrni a zárt metódost: BaseClass::moreTesting()
?>
Example#2 Zárt osztály példa
<?php
final class BaseClass {
public function test() {
echo "BaseClass::test() meghÃvva\n";
}
// Itt nem gond, ha a függvényt zártként határozod meg, vagy nem
final public function moreTesting() {
echo "BaseClass::moreTesting() meghÃvva\n";
}
}
class ChildClass extends BaseClass {
}
// Results in Fatal error: Class ChildClass may not inherit from final class (BaseClass)
// Fatális hiba: A ChildClass osztály nem örökölhet zárt osztálytól (BaseClass)
?>