⊗ppOpIhCOM 29 of 107 menu

Gọi phương thức ghi đè trong OOP PHP

Khi ghi đè, lớp con mất quyền truy cập vào phương thức đã bị ghi đè của lớp cha. Tuy nhiên, vẫn có thể truy cập nó. Điều này được thực hiện bằng từ khóa parent, trỏ đến lớp cha.

Hãy xem một ví dụ khi nào chúng ta có thể cần truy cập đến phương thức của lớp cha. Giả sử chúng ta có lớp cha sau:

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

Giả sử chúng ta trong lớp con đã ghi đè phương thức của lớp cha:

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

Có thể nhận thấy rằng trong phương thức đã ghi đè khi điều kiện được thỏa mãn thực chất là thực thi mã của phương thức lớp cha. Điều này dẫn đến việc lặp mã không cần thiết.

Có thể loại bỏ nó bằng cách gọi phương thức của lớp cha. Hãy thực hiện điều đó:

<?php class Student extends User { public function setName($name) { if (strlen($name) > 0) { parent::setName($name); // phương thức của lớp cha } else { echo 'student name error'; } } } ?>

Cho đoạn mã sau:

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

Trong lớp Employee hãy sửa và đơn giản hóa phương thức thiết lập tuổi, sử dụng phương thức gốc của lớp cha.

Tiếng Việt
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbek
Chúng tôi sử dụng cookie để vận hành trang web, phân tích và cá nhân hóa. Việc xử lý dữ liệu được thực hiện tuân theo Chính sách bảo mật.
chấp nhận tất cả tùy chỉnh từ chối