Ιδιωτικές Μέθοδοι στην Κληρονομικότητα στην OOP στην PHP
Οι ιδιωτικές μέθοδοι δεν κληρονομούνται. Αυτό γίνεται σκόπιμα, για να μην παραβιάζεται η ενθυλάκωση. Ας δούμε ένα παράδειγμα. Ας υποθέσουμε ότι έχουμε την ακόλουθη γονική κλάση με μια ιδιωτική μέθοδο:
<?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);
}
}
?>
Ας υποθέσουμε ότι από τη γονική κλάση κληρονομεί η ακόλουθη κλάση:
<?php
class Student extends User {
private $surn;
public function setSurn($surn) {
$this->surn = $surn;
}
public function getSurn() {
return $this->surn;
}
}
?>
Ας υποθέσουμε ότι ο απόγονος θέλει να χρησιμοποιήσει την ιδιωτική μέθοδο του γονέα. Η PHP δεν θα το επιτρέψει και θα εμφανίσει σφάλμα:
<?php
class Student extends User {
private $surn;
public function setSurn($surn) {
$this->surn = $surn;
}
public function getSurn() {
return $this->capeFirst($this->surn); // θα προκύψει σφάλμα
}
}
?>
Δοκιμάστε στην κλάση Employee
να χρησιμοποιήσετε την ιδιωτική μέθοδο
του γονέα.