PHP-de OOP miras alanda guruplaýjy
Miras alanda, atanyň guruplaýjysynyň üstüni özgerdip bolýar. Mysal üçin seredeliň. Aşakdaky ýaly ata klasymyz bolsun:
<?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;
}
}
?>
Ata klasdan aşakdaky klas miras alsyn:
<?php
class Student extends User {
}
?>
Farz edeliň, miras alyjy klasda guruplaýjyny giňeltmek isleýäris, ona goşmaça parametrler goşup:
<?php
class Student extends User {
private $year;
public function __construct($name, $surn, $year) {
}
}
?>
Bu ýagdaýda, ilkinji setir hökmünde ata guruplaýjyny parent::__construct() arkaly çagyrmaly:
<?php
class Student extends User {
private $year;
public function __construct($name, $surn, $year) {
parent::__construct($name, $surn);
}
}
?>
parent::__construct() buýrugy esasan atanyň guruplaýjysydyr. Şonuň üçin ony talap edilýän parametrler bilen üpjün edeliň:
<?php
class Student extends User {
private $year;
public function __construct($name, $surn, $year) {
parent::__construct($name, $surn);
}
}
?>
Indi miras alyjyda okuw ýyllygyny miras alyjynyň öz aýratynlygyna ýazalyň:
<?php
class Student extends User {
private $year;
public function __construct($name, $surn, $year) {
parent::__construct($name, $surn);
$this->year = $year;
}
}
?>
Okuw ýyly üçin getter döredeliň:
<?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;
}
}
?>
Employee klasy bu sapagyň User klasyndan miras alsyn.
Employee klasynda ata guruplaýjynyň üstüni özgerdiriň, ona ýaş we maaş parametrlerini goşuň.
Ýaş we maaş üçin getterler düzüň.