⊗ppOpIhPrM 31 of 107 menu

პრივატული მეთოდები მემკვიდრეობითობის დროს 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 გამოიყენოთ მშობელის პრივატული მეთოდი.

azbydeenesfrkakkptruuz