⊗ppOpIhCOM 29 of 107 menu

Memanggil Metode yang Dioverride dalam OOP di PHP

Saat override, child class kehilangan akses ke metode parent yang dioverride. Namun, akses ke metode tersebut tetap bisa didapatkan. Hal ini dilakukan dengan menggunakan kata kunci parent, yang merujuk ke parent class.

Mari kita lihat contoh kapan kita mungkin memerlukan akses ke metode parent. Misalkan kita memiliki parent class berikut:

<?php class User { private $name; public function setName($name) { $this->name = $name; } public function getName() { return $this->name; } } ?>

Misalkan kita di child class mengoverride metode parent:

<?php class Student extends User { public function setName($name) { if (strlen($name) > 0) { $this->name = $name; } else { echo 'student name error'; } } } ?>

Dapat dilihat bahwa dalam metode yang dioverride saat kondisi terpenuhi, pada dasarnya kode metode parent yang dijalankan. Terjadi duplikasi kode yang tidak perlu.

Kita dapat menghilangkannya dengan memanggil metode parent. Mari kita lakukan:

<?php class Student extends User { public function setName($name) { if (strlen($name) > 0) { parent::setName($name); // metode parent } else { echo 'student name error'; } } } ?>

Diberikan kode berikut:

<?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'; } } } ?>

Di class Employee, perbaiki dan sederhanakan setter usia, dengan menggunakan metode asli parent.

Indonesia
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Kami menggunakan cookie untuk operasi situs, analitik, dan personalisasi. Pemrosesan data dilakukan sesuai dengan Kebijakan Privasi.
terima semua atur tolak