პრივატული თვისებები მემკვიდრეობითობისას OOP-ში PHP-ში
პრივატული თვისებები არ გადაეცემა მემკვიდრეობით. მაგრამ შთამომავალს შეუძლია მათზე მანიპულირება მშობლის საჯარო მეთოდების მეშვეობით. პრაქტიკაში ვნახოთ. დავუშვათ, გვაქვს შემდეგი მშობელი კლასი პრივატული თვისებით და მისი გეთერით და სეთერით:
<?php
class User {
private $name;
public function setName($name) {
$this->name = $name;
}
public function getName() {
return $this->name;
}
}
?>
დავუშვათ, მშობლისაგან მემკვიდრეობით მიიღებს შემდეგმა შთამომავალმა:
<?php
class Student extends User {
}
?>
შევქმნათ შთამომავლის ობიექტი:
<?php
$student = new Student;
?>
გამოვიყენოთ მშობლის მეთოდი, რათა ჩავწეროთ მისი პრივატული თვისება:
<?php
$student->setName('john');
?>
გამოვიყენოთ მშობლის მეთოდი, რათა წავიკითხოთ მისი პრივატული თვისება:
<?php
$name = $student->getName();
echo $name;
?>
მოცემულია შემდეგი მშობელი კლასი:
<?php
class User {
private $name;
private $surn;
public function setName($name) {
$this->name = $name;
}
public function getName() {
return $this->name;
}
public function setSurn($surn) {
$this->surn = $surn;
}
public function getSurn() {
return $this->surn;
}
}
?>
გააკეთეთ კლასი Employee,
რომელიც მემკვიდრეობით მიიღებს
ამ მშობლისგან.
შექმენით Employee კლასის ობიექტი
და გამოიძახეთ მემკვიდრეობით მიღებული
სეთერები და გეთერები.
Employee კლასში გააკეთეთ
შემდეგი მეთოდი:
<?php
public function getFull() {
return $this->name . ' ' . $this->surn;
}
?>
დარწმუნდით, რომ მეთოდის კოდი გამოიწვევს შეცდომას.