⊗ppOpIhPrM 31 of 107 menu

Private metoder ved arv i OOP i PHP

Private metoder arves ikke. Dette er gjort med vilje for ikke at overtræde inkapsling. Lad os se på et eksempel. Lad os sige, at vi har følgende forældreklasse med en privat metode:

<?php class User { private $name; public function setName($name) { $this->name = $name; } public function getName() { return $this->capeFirst($this->name); } private function capeFirst($str) { return ucfirst($str); } } ?>

Lad følgende klasse arve fra forældreklassen:

<?php class Student extends User { private $surn; public function setSurn($surn) { $this->surn = $surn; } public function getSurn() { return $this->surn; } } ?>

Lad barnet vil bruge forælderens private metode. PHP tillader dette ikke og vil give en fejl:

<?php class Student extends User { private $surn; public function setSurn($surn) { $this->surn = $surn; } public function getSurn() { return $this->capeFirst($this->surn); // vil give fejl } } ?>

Prøv i klassen Employee at bruge forælderens private metode.

itdauzlhuby