ให้เรตสมาชิก: 1 / 5

ดาวใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งาน
 

การสืบทอดคุณสมบัติ Inheritance ของ php5

ในการเขียนโปรแกรมแบบ OOPจำเป็นต้องมีการสืบทอดคุณสมบัติของคลาสแม่ไปยังคลาสลูก โดยใช้ keyword extends
เมื่อเราสร้างคลาสใหม่ขึ้นมาใหม่โดยต้องการคุณสมบัติต่างๆของคลาสอื่น(คลาสแม่) ก็จำเป็นต้องใช้ การ extends โดยการสร้างคลาสใหม่ตามรูปแบบนี้

class children extends parent 

นอกจากนั้นแล้วเรายังสามารถกำหนดการเข้าถึงคุณสมบัติต่างๆ ของคลาสแม่ได้ด้วย โดยกำหนด Attributes ของ Class ใน php5 ซึ่งประกอบด้วย
(Private Protected Public ) อ่านต่อเพิ่มเติมที่หัวข้อ การกำหนด Attributes ของ Class ใน php5 Private Protected Public การสืบทอดคุณสมบัติสามารถทำได้คลาสต่อคลาสเท่านั้น (Inheritance ) ได้ชั้นเดียว การตั้งชื่อคลาสหน้าตั้งชื่อ parent ตัวอย่างเช่น คลาสชื่อ parent ไม่ได้

ไฟล์ตัวอย่าง :: ex_code_1.php
<?php 
class parent //Generates an error
{
private $firstname;
private $lastname;
}
class children extends parent
{
function __construct()
{
echo $this->firstname;
echo $this->lastname;
}
}
$a = new children();
?>

ตัวอย่างง่ายๆ สำหรับอธิบายการสืบทอด (Inheritance)

ไฟล์ตัวอย่าง :: ex_code_2.php
<?php
class parent1
{
protected $firstname = 11;
protected $lastname = 23;
}
class children extends parent1
{
function __construct()
{
echo $this->firstname;
echo $this->lastname;
}
}
$a = new children();
?>

ผลที่ได้ 1123
คลาส Parent1 จะส่งคุณสมบัติต่างๆของมันไปให้ คลาส chidren children ก็สามารถใช้งาน attributes $firstname และ$lastname ได้

ตัวอย่างการเข้าถึง private Data ในการสืบทอด

ไฟล์ตัวอย่าง :: ex_code_3.php
<?php
class parent1
{
private $firstname = "hitesh";
protected $lastname = 23;

protected function getData()
{
return $this->firstname;
}
}
class children extends parent1
{
function __construct()
{
echo $this->getData();
}
}
$a = new children();
?>

ผลที่ได้ hitesh
ตามตัวอย่างนี้คลาส children ไม่สามารถเรียกใช้ attributes $firstname ได้โดยตรงแต่สามารถเรียกผ่าน method ของ คลาสแม่ได้

ชื่อ
การสืบทอดคุณสมบัติ Inheritance ของ php5 - OOP
หมวดหมู่
PHP OOP, PHP OOP
ฮิต
10270
ผู้สร้างเอกสาร
thatsawan
วันที่สร้างเอกสาร
2014-05-15 00:17:45

OOP_08.zip

ประเภทไฟล์ zip

ขนาดไฟล์ 1.04 KB

ผู้อัพโหลดไฟล์ thatsawan

วันที่อัพโหลด 2014-05-14 15:57:50


กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
B - demo Print loading list ภาษาไทยไม่แสดง
โดย mindphp อ 17 มิ.ย. 2018 12:09 am บอร์ด บริษัท เซนิธ เบบี้ แคร์ จำกัด - Tester
1
2
อ 17 มิ.ย. 2018 12:28 am โดย mindphp
B - มีโมดูลเกินใน demo
โดย mindphp ส 16 มิ.ย. 2018 11:53 pm บอร์ด บริษัท เซนิธ เบบี้ แคร์ จำกัด - Tester
0
1
ส 16 มิ.ย. 2018 11:53 pm โดย mindphp
Q - วิธีเรียกตัวแปรมาใช้ในไฟล์ php ที่แสดงในหน้าเว็บใน JoomShopping
โดย Parichat ส 16 มิ.ย. 2018 6:58 pm บอร์ด Joomla Dev
15
32
อ 17 มิ.ย. 2018 11:31 am โดย tsukasaz
B - com_mcharts สามารถติดตั้งได้แต่ไม่สามารถเข้าหน้าตั่งค่าได้
โดย Parichat ส 16 มิ.ย. 2018 5:12 pm บอร์ด M061 - ปาริชาติ รัตโณภาส
0
1
ส 16 มิ.ย. 2018 5:12 pm โดย Parichat
B - com_MJUpgrade ไม่สามารถติดตั้งได้
โดย Parichat ส 16 มิ.ย. 2018 4:48 pm บอร์ด M061 - ปาริชาติ รัตโณภาส
0
1
ส 16 มิ.ย. 2018 4:48 pm โดย Parichat
B - com_M2OpenERP Migration สามารถติดตั้งได้แต่ไม่สามารถใช้งานได้
โดย Parichat ส 16 มิ.ย. 2018 4:31 pm บอร์ด M2OpenERP
0
2
ส 16 มิ.ย. 2018 4:31 pm โดย Parichat
controller เรียกใช้ function ใน model ใน JoomShopping
โดย Parichat ส 16 มิ.ย. 2018 3:38 pm บอร์ด Joomla Developing Knowledge
0
18
ส 16 มิ.ย. 2018 3:38 pm โดย Parichat
งานประจำวันที่ 16 มิถุนายน 2561
โดย Rujikon ส 16 มิ.ย. 2018 9:40 am บอร์ด M060 - นายรุจิกร พงษ์พิละ
2
4
ส 16 มิ.ย. 2018 7:06 pm โดย Rujikon
งานประจำวันที่ 16 มิถุนายน 2561
โดย Parichat ส 16 มิ.ย. 2018 9:35 am บอร์ด M061 - ปาริชาติ รัตโณภาส
1
2
ส 16 มิ.ย. 2018 7:09 pm โดย Parichat
งานประจำวันที่ 16 มิถุนายน 2561
โดย wilawan ส 16 มิ.ย. 2018 8:33 am บอร์ด M062 - วิลาวัณย์ นักษัตรมณฑล
2
10
ส 16 มิ.ย. 2018 7:02 pm โดย thatsawan
upload file ไม่เข้าค่ะผิดตรงไหนค่ะ รบกวนแนะนำหน่อยค่ะ _/|\_
โดย supattra_su ศ 15 มิ.ย. 2018 6:08 pm บอร์ด Programming - PHP
1
35
ส 16 มิ.ย. 2018 1:03 am โดย mindphp
ฺB - In Process ชื่อลูกค้าหาย [2018-01][017]
โดย Rujikon ศ 15 มิ.ย. 2018 5:53 pm บอร์ด Hachanna - Testter
0
4
ศ 15 มิ.ย. 2018 5:53 pm โดย Rujikon
R - อัพเดท state auto หลังจาก state ของ RMA เป็น deliver
โดย nuattawoot ศ 15 มิ.ย. 2018 5:13 pm บอร์ด อาร์ซีพี โกลบอล จำกัด - Tester
2
12
ส 16 มิ.ย. 2018 1:53 pm โดย Rujikon
Q - ทำให้รูปฟีเจอร์ของสินค้าคลิกไปแล้วให้ได้ตรงกับสินค้าที่เปิดเข้าไปดู
โดย Parichat พฤ 14 มิ.ย. 2018 5:24 pm บอร์ด Joomla Dev
36
86
ส 16 มิ.ย. 2018 10:04 am โดย Parichat
บริษัท Hachana แจ้งอัพข้อมูล
โดย Rujikon ศ 15 มิ.ย. 2018 3:48 pm บอร์ด Mindphp Task (ทดลองงาน)
0
7
ศ 15 มิ.ย. 2018 3:48 pm โดย Rujikon
R - ERP ของบริษัท Expenses จะต้องไม่เห็นค่าใช้จ่ายของคนอื่น (M055) เห็นหมดเลย
โดย thatsawan ศ 15 มิ.ย. 2018 2:23 pm บอร์ด M.D.Soft Co.,Ltd. - Tester
1
3
ศ 15 มิ.ย. 2018 2:23 pm โดย thatsawan
วิธีหาวันเเรกเเละวันที่สิ้นสุด ของปีใน python
โดย thatsawan ศ 15 มิ.ย. 2018 1:24 pm บอร์ด Python Knowledge
0
15
ศ 15 มิ.ย. 2018 1:24 pm โดย thatsawan
หลักการเก็บข้อมูลสำหรับการพัฒนาระบบ
โดย wilawan ศ 15 มิ.ย. 2018 1:23 pm บอร์ด M062 - วิลาวัณย์ นักษัตรมณฑล
0
6
ศ 15 มิ.ย. 2018 1:23 pm โดย wilawan
B - หน้ารายการสินค้าต้องมีกรอบสีขาว
โดย tsukasaz ศ 15 มิ.ย. 2018 11:44 am บอร์ด Doy-shop ( 15 พ.ค. - 29 พ.ค. 61)
1
7
ศ 15 มิ.ย. 2018 12:15 pm โดย Parichat
งานประจำวันที่ 15 มิถุนายน 2561
โดย Rujikon ศ 15 มิ.ย. 2018 9:47 am บอร์ด M060 - นายรุจิกร พงษ์พิละ
1
9
ศ 15 มิ.ย. 2018 6:41 pm โดย Rujikon