Oproep van 'n oorgeskrewe metode in OOP in PHP
Met oorskrywing verloor die nakomeling
toegang tot die oorgeskrewe metode
van die ouer. Tog is dit steeds moontlik
om toegang daartoe te verkry. Dit word gedoen
met die sleutelwoord parent,
wat na die ouerklas verwys.
Kom ons kyk na 'n voorbeeld wanneer ons toegang tot die ouermetode mag benodig. Gestel ons het die volgende ouerklas:
<?php
class User {
private $name;
public function setName($name) {
$this->name = $name;
}
public function getName() {
return $this->name;
}
}
?>
Gestel ons het die metode van die ouer in die nakomelingklas oorgeskryf:
<?php
class Student extends User {
public function setName($name) {
if (strlen($name) > 0) {
$this->name = $name;
} else {
echo 'student name error';
}
}
}
?>
Dit kan opgemerk word dat in die oorgeskrewe metode, wanneer die voorwaarde vervul word, dit in werklikheid die kode van die ouermetode uitvoer. Dit lei tot onnodige duplikasie van kode.
Dit kan vermy word deur die ouermetode aan te roep. Kom ons doen dit:
<?php
class Student extends User {
public function setName($name) {
if (strlen($name) > 0) {
parent::setName($name); // ouermetode
} else {
echo 'student name error';
}
}
}
?>
Die volgende kode word gegee:
<?php
class User {
private $age;
public function setAge($age) {
if ($age >= 0) {
$this->age = $age;
} else {
echo 'need age more 0';
}
}
}
class Employee extends User {
public function setAge($age) {
if ($age <= 120) {
if ($age >= 0) {
$this->age = $age;
} else {
echo 'need age more 0';
}
} else {
echo 'need age less 120';
}
}
}
?>
In die klas Employee, reg
vereenvoudig die leeftyd-setter deur die
oorspronklike metode van die ouer te gebruik.