⊗ppOpFnCl 63 of 107 menu

คลาสนามธรรมใน OOP ใน PHP

สมมติว่าคุณมีคลาส User และ คลาส Employee กับ Student สืบทอดมาจากมัน

ในขณะเดียวกัน คาดว่าคุณจะสร้าง อ็อบเจ็กต์ของคลาส Employee และ Student แต่จะไม่สร้างอ็อบเจ็กต์ของคลาส User เนื่องจากคลาสนี้ใช้เฉพาะสำหรับ จัดกลุ่มคุณสมบัติและเมธอดทั่วไปให้กับ คลาสลูกที่สืบทอดจากมัน

ในกรณีนี้คุณสามารถห้าม การสร้างอ็อบเจ็กต์ของคลาส User โดยบังคับ เพื่อที่ คุณหรือโปรแกรมเมอร์คนอื่นจะได้ไม่เผลอไปสร้างมัน ที่ใดที่หนึ่ง

สำหรับเรื่องนี้มีสิ่งที่เรียกว่าคลาสนามธรรม (non-concrete class) คลาสนามธรรมคือ คลาสที่มีไว้สำหรับการสืบทอด จากพวกมันเท่านั้น โดยไม่สามารถ สร้างอ็อบเจ็กต์ของคลาสดังกล่าวได้

เพื่อประกาศว่าเป็นคลาสนามธรรม จำเป็นต้องเขียนคำสั่ง abstract ในการประกาศคลาส:

<?php abstract class User { } ?>

ดังนั้น มาเขียนการใช้งานคลาสนามธรรม User กัน สมมติว่ามันมีคุณสมบัติส่วนตัว name และมีเก็ตเตอร์กับเซ็ตเตอร์ สำหรับมัน:

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

การพยายามสร้างอ็อบเจ็กต์ของคลาส User จะทำให้เกิดข้อผิดพลาด:

<?php $user = new User; // จะแสดงข้อผิดพลาด ?>

แต่การสืบทอดจากคลาสของเราจะสามารถ ทำได้ มาสร้างคลาส Employee ที่ จะสืบทอดจากคลาสนามธรรมของเรา User:

<?php class Employee extends User { private $salary; public function getSalary() { return $this->salary; } public function setSalary($salary) { $this->salary = $salary; } } ?>

มาสร้างอ็อบเจ็กต์ของคลาส Employee - ทุกอย่างจะทำงาน:

<?php $employee = new Employee; $employee->setName('john'); // เมธอดของคลาสแม่ คือคลาส User $employee->setSalary(1000); // เมธอดของตัวเอง คือคลาส Employee echo $employee->getName(); // จะแสดง 'john' echo $employee->getSalary(); // จะแสดง 1000 ?>

สร้างคลาสนามธรรม Figure, ที่แสดงถึงรูปทรง เรขาคณิต ปล่อยให้คลาสสำหรับ วงกลม, สี่เหลี่ยมผืนผ้า และสี่เหลี่ยมจัตุรัส สืบทอดจากมัน

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