PHP में OOP विरासत में निजी तरीके
निजी तरीके विरासत में नहीं मिलते हैं। यह जानबूझकर किया गया है ताकि एनकैप्सुलेशन को न तोड़ा जाए। आइए एक उदाहरण पर नजर डालते हैं। मान लीजिए कि हमारे पास एक निजी विधि के साथ निम्नलिखित मूल वर्ग है:
<?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 वर्ग में मूल वर्ग की निजी विधि का
उपयोग करने का प्रयास करें।