
คุณสมบัตินี้เป็นคุณสมบัติที่เรียกว่า ถ่ายทอดคุณสมบัติของคลาส ฟีเจอร์นี้มีประโยชน์สุด ๆ ในการเพิ่มฟีเจอร์ย่อยหรือผลพลอยได้จากการพัฒนาแบบหลาย ๆ คนทำงานร่วมกัน หรือจะเป็นลักษณะการพัฒนาต่อยอด ขยายขีดความสามารถของบางฟีเจอร์ออกไป
ก่อนที่จะอ่านต่อไป เราจำเป็นต้องเข้าใจเรื่อง Accessing Properties and Methods หรือบางคนจะเรียก visibility class เสียก่อน ถ้ายังไม่ได้อ่านให้กลับไปอ่าน PHP OOP ตอนที่ 2 3คำที่ควรรู้กับการสร้างคลาส public, protected, private
การเขียนเราจะใช้ extends ต่อจากคลาสของเราแล้วตามด้วยชื่อ main class ที่เราต้องการ ให้ดูจากตัวอย่างโค้ดด้านล่าง และพิจารณาจากโค้ดเพื่อที่จะความเข้าใจในคุณสมบัิตินี้มากขึ้น
ด้านบนคือตัวอย่างประกอบ การอธิบายของผม ไม่ต้องซีเรียสอะไรมากนัก แน่นอนเราจะเห็นว่า การทำextending class หรือ inheritance class นั้นจะ้ต้องมีอย่างน้อย 2 class คือ main class (คลาสหลักที่เราต้องการสืบทอดคุณสมบัติออกมา) และ subclass ( คลาสใหม่ของเรา)
เช่นด้านบนเรามี main class คือ MyPets ซึ่งสามารถมีขา มีหาง และสามารถทำเสียงได้ แต่ผมอยากได้ หมาสักตัว ซึ่งผมอยากให้มันสามารถวิ่งได้ด้วย ผมจึงสร้างคลาสใหม่ แต่ผมเห็น main class มีคุณสมบัติซึ่งสามารถมีขา มีหาง และสามารถทำเสียงได้ด้วย ผมจึงขยายความสามารถนี้ออกมาโดยไม่ต้องเขียนขึ้นใหม่อีก ผมจึง extends class มาใช้เลย
จากนั้นผมก็ใส่คุณสมบัติใหม่ที่ผมอยากได้เข้าไป ให้สามารถวิ่งได้ด้วยอีก นี่คือหลักการคิดครับ น่าจะเข้าใจได้ครับ อธิบายบ้าน ๆ สุด ไม่เน้นทฤษฏีเท่าไรนัก ตามสไตร์ผมล่ะ
แต่ในกรณีที่เราไม่ต้องการให้มีการ extends class ของเราอีก เราสามารถกำหนดเพื่อบอกว่า ไม่ต้อง extends class นี้อีกต่อไป ก็ให้ใช้ final นำหน้า class นั้น เช่น
ที่มา : คุณสมบัตินี้เป็นคุณสมบัติที่เรียกว่า ถ่ายทอดคุณสมบัติของคลาส ฟีเจอร์นี้มีประโยชน์สุด ๆ ในการเพิ่มฟีเจอร์ย่อยหรือผลพลอยได้จากการพัฒนาแบบหลาย ๆ คนทำงานร่วมกัน หรือจะเป็นลักษณะการพัฒนาต่อยอด ขยายขีดความสามารถของบางฟีเจอร์ออกไป
ก่อนที่จะอ่านต่อไป เราจำเป็นต้องเข้าใจเรื่อง Accessing Properties and Methods หรือบางคนจะเรียก visibility class เสียก่อน ถ้ายังไม่ได้อ่านให้กลับไปอ่าน PHP OOP ตอนที่ 2 3คำที่ควรรู้กับการสร้างคลาส public, protected, private
การเขียนเราจะใช้ extends ต่อจากคลาสของเราแล้วตามด้วยชื่อ main class ที่เราต้องการ ให้ดูจากตัวอย่างโค้ดด้านล่าง และพิจารณาจากโค้ดเพื่อที่จะความเข้าใจในคุณสมบัิตินี้มากขึ้น
ด้านบนคือตัวอย่างประกอบ การอธิบายของผม ไม่ต้องซีเรียสอะไรมากนัก แน่นอนเราจะเห็นว่า การทำextending class หรือ inheritance class นั้นจะ้ต้องมีอย่างน้อย 2 class คือ main class (คลาสหลักที่เราต้องการสืบทอดคุณสมบัติออกมา) และ subclass ( คลาสใหม่ของเรา)
เช่นด้านบนเรามี main class คือ MyPets ซึ่งสามารถมีขา มีหาง และสามารถทำเสียงได้ แต่ผมอยากได้ หมาสักตัว ซึ่งผมอยากให้มันสามารถวิ่งได้ด้วย ผมจึงสร้างคลาสใหม่ แต่ผมเห็น main class มีคุณสมบัติซึ่งสามารถมีขา มีหาง และสามารถทำเสียงได้ด้วย ผมจึงขยายความสามารถนี้ออกมาโดยไม่ต้องเขียนขึ้นใหม่อีก ผมจึง extends class มาใช้เลย
จากนั้นผมก็ใส่คุณสมบัติใหม่ที่ผมอยากได้เข้าไป ให้สามารถวิ่งได้ด้วยอีก นี่คือหลักการคิดครับ น่าจะเข้าใจได้ครับ อธิบายบ้าน ๆ สุด ไม่เน้นทฤษฏีเท่าไรนัก ตามสไตร์ผมล่ะ
แต่ในกรณีที่เราไม่ต้องการให้มีการ extends class ของเราอีก เราสามารถกำหนดเพื่อบอกว่า ไม่ต้อง extends class นี้อีกต่อไป ก็ให้ใช้ final นำหน้า class นั้น เช่น
ก่อนที่จะอ่านต่อไป เราจำเป็นต้องเข้าใจเรื่อง Accessing Properties and Methods หรือบางคนจะเรียก visibility class เสียก่อน ถ้ายังไม่ได้อ่านให้กลับไปอ่าน PHP OOP ตอนที่ 2 3คำที่ควรรู้กับการสร้างคลาส public, protected, private
การเขียนเราจะใช้ extends ต่อจากคลาสของเราแล้วตามด้วยชื่อ main class ที่เราต้องการ ให้ดูจากตัวอย่างโค้ดด้านล่าง และพิจารณาจากโค้ดเพื่อที่จะความเข้าใจในคุณสมบัิตินี้มากขึ้น
- class MyPets {
- public $name;
- function HasLegs($AmountOfLegs) {
- echo "My Pet is {$this->name} , has {$AmountOfLegs} legs";
- echo $this->HasTail();
- }
- protected function MakeSound($voice) {
- echo ", makes sound {$voice}.";
- }
- private function HasTail() {
- echo ', has a tail';
- }
- }
- class MyDog extends MyPets {
- private function CanRun() {
- echo "and can ran too.";
- }
- function ShowMyPet() {
- echo $this->HasLegs('4');
- echo $this->MakeSound('box box');
- echo $this->CanRun();
- }
- }
ด้านบนคือตัวอย่างประกอบ การอธิบายของผม ไม่ต้องซีเรียสอะไรมากนัก แน่นอนเราจะเห็นว่า การทำextending class หรือ inheritance class นั้นจะ้ต้องมีอย่างน้อย 2 class คือ main class (คลาสหลักที่เราต้องการสืบทอดคุณสมบัติออกมา) และ subclass ( คลาสใหม่ของเรา)
เช่นด้านบนเรามี main class คือ MyPets ซึ่งสามารถมีขา มีหาง และสามารถทำเสียงได้ แต่ผมอยากได้ หมาสักตัว ซึ่งผมอยากให้มันสามารถวิ่งได้ด้วย ผมจึงสร้างคลาสใหม่ แต่ผมเห็น main class มีคุณสมบัติซึ่งสามารถมีขา มีหาง และสามารถทำเสียงได้ด้วย ผมจึงขยายความสามารถนี้ออกมาโดยไม่ต้องเขียนขึ้นใหม่อีก ผมจึง extends class มาใช้เลย
- class MyDog extends MyPets {
- // my code
- }
จากนั้นผมก็ใส่คุณสมบัติใหม่ที่ผมอยากได้เข้าไป ให้สามารถวิ่งได้ด้วยอีก นี่คือหลักการคิดครับ น่าจะเข้าใจได้ครับ อธิบายบ้าน ๆ สุด ไม่เน้นทฤษฏีเท่าไรนัก ตามสไตร์ผมล่ะ
แต่ในกรณีที่เราไม่ต้องการให้มีการ extends class ของเราอีก เราสามารถกำหนดเพื่อบอกว่า ไม่ต้อง extends class นี้อีกต่อไป ก็ให้ใช้ final นำหน้า class นั้น เช่น
- final class MyPets {
- // my code
- }
ที่มา : คุณสมบัตินี้เป็นคุณสมบัติที่เรียกว่า ถ่ายทอดคุณสมบัติของคลาส ฟีเจอร์นี้มีประโยชน์สุด ๆ ในการเพิ่มฟีเจอร์ย่อยหรือผลพลอยได้จากการพัฒนาแบบหลาย ๆ คนทำงานร่วมกัน หรือจะเป็นลักษณะการพัฒนาต่อยอด ขยายขีดความสามารถของบางฟีเจอร์ออกไป
ก่อนที่จะอ่านต่อไป เราจำเป็นต้องเข้าใจเรื่อง Accessing Properties and Methods หรือบางคนจะเรียก visibility class เสียก่อน ถ้ายังไม่ได้อ่านให้กลับไปอ่าน PHP OOP ตอนที่ 2 3คำที่ควรรู้กับการสร้างคลาส public, protected, private
การเขียนเราจะใช้ extends ต่อจากคลาสของเราแล้วตามด้วยชื่อ main class ที่เราต้องการ ให้ดูจากตัวอย่างโค้ดด้านล่าง และพิจารณาจากโค้ดเพื่อที่จะความเข้าใจในคุณสมบัิตินี้มากขึ้น
- class MyPets {
- public $name;
- function HasLegs($AmountOfLegs) {
- echo "My Pet is {$this->name} , has {$AmountOfLegs} legs";
- echo $this->HasTail();
- }
- protected function MakeSound($voice) {
- echo ", makes sound {$voice}.";
- }
- private function HasTail() {
- echo ', has a tail';
- }
- }
- class MyDog extends MyPets {
- private function CanRun() {
- echo "and can ran too.";
- }
- function ShowMyPet() {
- echo $this->HasLegs('4');
- echo $this->MakeSound('box box');
- echo $this->CanRun();
- }
- }
ด้านบนคือตัวอย่างประกอบ การอธิบายของผม ไม่ต้องซีเรียสอะไรมากนัก แน่นอนเราจะเห็นว่า การทำextending class หรือ inheritance class นั้นจะ้ต้องมีอย่างน้อย 2 class คือ main class (คลาสหลักที่เราต้องการสืบทอดคุณสมบัติออกมา) และ subclass ( คลาสใหม่ของเรา)
เช่นด้านบนเรามี main class คือ MyPets ซึ่งสามารถมีขา มีหาง และสามารถทำเสียงได้ แต่ผมอยากได้ หมาสักตัว ซึ่งผมอยากให้มันสามารถวิ่งได้ด้วย ผมจึงสร้างคลาสใหม่ แต่ผมเห็น main class มีคุณสมบัติซึ่งสามารถมีขา มีหาง และสามารถทำเสียงได้ด้วย ผมจึงขยายความสามารถนี้ออกมาโดยไม่ต้องเขียนขึ้นใหม่อีก ผมจึง extends class มาใช้เลย
- class MyDog extends MyPets {
- // my code
- }
จากนั้นผมก็ใส่คุณสมบัติใหม่ที่ผมอยากได้เข้าไป ให้สามารถวิ่งได้ด้วยอีก นี่คือหลักการคิดครับ น่าจะเข้าใจได้ครับ อธิบายบ้าน ๆ สุด ไม่เน้นทฤษฏีเท่าไรนัก ตามสไตร์ผมล่ะ
แต่ในกรณีที่เราไม่ต้องการให้มีการ extends class ของเราอีก เราสามารถกำหนดเพื่อบอกว่า ไม่ต้อง extends class นี้อีกต่อไป ก็ให้ใช้ final นำหน้า class นั้น เช่น
- final class MyPets {
- // my code
- }