Konstruktori në Trashëgimi në OOP në PHP
Gjatë trashëgimisë, mund të rishkruani konstruktorin e prindit. Le të shohim në një shembull. Le të themi se kemi këtë klasë prind:
<?php
class User {
private $name;
private $surn;
public function __construct($name, $surn) {
$this->name = $name;
$this->surn = $surn;
}
public function getName() {
return $this->name;
}
public function getSurn() {
return $this->surn;
}
}
?>
Le të themi se nga klasa prind trashëgohet kjo klasë:
<?php
class Student extends User {
}
?>
Le të themi se në klasën e fëmijës duam të zgjerojmë konstruktorin, duke shtuar parametra shtesë:
<?php
class Student extends User {
private $year;
public function __construct($name, $surn, $year) {
}
}
?>
Në këtë rast, ne domosdoshmërisht duhet
që në rreshtin e parë të thirrim konstruktorin
e prindit përmes parent::__construct():
<?php
class Student extends User {
private $year;
public function __construct($name, $surn, $year) {
parent::__construct($name, $surn);
}
}
?>
Komanda parent::__construct() në thelb është
konstruktori i prindit. Prandaj
le t'i kalojmë atij parametrat e kërkuar:
<?php
class Student extends User {
private $year;
public function __construct($name, $surn, $year) {
parent::__construct($name, $surn);
}
}
?>
Tani në fëmijë, vitin e studimit do ta shkruajmë në vetinë e vet të fëmijës:
<?php
class Student extends User {
private $year;
public function __construct($name, $surn, $year) {
parent::__construct($name, $surn);
$this->year = $year;
}
}
?>
Le të bëjmë një getter për vitin e studimit:
<?php
class Student extends User {
private $year;
public function __construct($name, $surn, $year) {
parent::__construct($name, $surn);
$this->year = $year;
}
public function getYear() {
return $this->year;
}
}
?>
Le të themi se klasa Employee trashëgon
nga klasa User nga ky
mësim.
Rishkruani në klasën Employee
konstruktorin e prindit, duke shtuar në të
parametra për moshën dhe pagën.
Bëni getter për moshën dhe pagën.