⊗ppOpIhCOM 29 of 107 menu

การเรียกใช้งานเมธอดที่ถูกโอเวอร์ไรด์ใน OOP ใน PHP

เมื่อมีการโอเวอร์ไรด์ คลาสลูกจะสูญเสีย การเข้าถึงเมธอดที่ถูกโอเวอร์ไรด์ ของคลาสพ่อแม่ อย่างไรก็ตาม ยังสามารถ เข้าถึงมันได้อยู่ สิ่งนี้ทำได้ โดยใช้คำสำคัญ parent, ซึ่งชี้ไปยังคลาสพ่อแม่

มาดูตัวอย่าง เมื่อเราอาจต้องการการเข้าถึง ไปยังเมธอดของคลาสพ่อแม่ สมมติว่าเรามี คลาสพ่อแม่ดังต่อไปนี้:

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

สมมติว่าในคลาสลูก เราได้โอเวอร์ไรด์เมธอดของคลาสพ่อแม่:

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

จะสังเกตได้ว่าในเมธอดที่โอเวอร์ไรด์ เมื่อเงื่อนไขเป็นจริง การทำงานที่แท้จริง คือโค้ดของเมธอดคลาสพ่อแม่ ซึ่งทำให้เกิดการซ้ำซ้อนของโค้ดที่ไม่จำเป็น

สามารถกำจัดมันได้โดยการเรียก เมธอดของคลาสพ่อแม่ มาลองทำดู:

<?php class Student extends User { public function setName($name) { if (strlen($name) > 0) { parent::setName($name); // เมธอดของคลาสพ่อแม่ } else { echo 'student name error'; } } } ?>

กำหนดโค้ดต่อไปนี้:

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

ในคลาส Employee กรุณาแก้ไข และลดความซับซ้อนของเซ็ตเตอร์อายุ โดยใช้ เมธอดดั้งเดิมของคลาสพ่อแม่

ไทย
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ʻzbekTiếng Việt
เราใช้คุกกี้สำหรับการทำงานของเว็บไซต์ การวิเคราะห์ และการปรับเนื้อหาให้เหมาะสมส่วนบุคคล การประมวลผลข้อมูลเกิดขึ้นตาม นโยบายความเป็นส่วนตัว.
ยอมรับทั้งหมด ปรับแต่ง ปฏิเสธ