Zasebne lastnosti pri dedovanju v OOP v PHP
Zasebne lastnosti se ne dedujejo. Ampak potomec lahko manipulira z njimi prek javnih metod starša. Poglejmo si to v praksi. Recimo, da imamo naslednji razred-starš z zasebno lastnostjo in njenim getterjem in setterjem:
<?php
class User {
private $name;
public function setName($name) {
$this->name = $name;
}
public function getName() {
return $this->name;
}
}
?>
Recimo, da od starša deduje naslednji potomec:
<?php
class Student extends User {
}
?>
Ustvarimo objekt potomca:
<?php
$student = new Student;
?>
Uporabimo metodo starša, da zapišemo njegovo zasebno lastnost:
<?php
$student->setName('john');
?>
Uporabimo metodo starša, da preberemo njegovo zasebno lastnost:
<?php
$name = $student->getName();
echo $name;
?>
Podan je naslednji razred-starš:
<?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;
}
}
?>
Naredite razred Employee,
ki bo dedoval
od tega starša.
Ustvarite objekt razreda Employee
in pokličite podedovane
setterje in getterje.
V razredu Employee naredite
naslednjo metodo:
<?php
public function getFull() {
return $this->name . ' ' . $this->surn;
}
?>
Prepričajte se, da bo koda metode povzročila napako.