พหุสัณฐาน
สำรวจแนวคิดขั้นสูงของการเขียนโปรแกรมเชิงวัตถุ
พหุสัณฐาน เป็นบทเรียน Python For Kids ฟรีบน CoddyKit นี่คือบทเรียนที่ 5 จากทั้งหมด 5 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Python For Kids และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Python For Kids มีบทเรียนทั้งหมด 5 บทเรียน
พหุรูปสัณฐาน
ยินดีต้อนรับกลับสู่บทเรียนการเขียนโปรแกรมเชิงวัตถุ (OOP) ครับ! วันนี้เราจะมาทำความรู้จักกับพหุรูปสัณฐานใน Python ซึ่งเป็นแนวคิดที่ทรงพลังและทำให้ออบเจ็กต์สามารถอยู่ในรูปแบบที่หลากหลายได้

พหุรูปสัณฐานคืออะไร
พหุรูปสัณฐานเป็นแนวคิดพื้นฐานใน OOP ที่ทำให้ออบเจ็กต์จากคลาสต่าง ๆ สามารถถูกมองว่าเป็นออบเจ็กต์ของซูเปอร์คลาสเดียวกันได้ แนวคิดนี้ทำให้ method เดียวกันทำงานแตกต่างกันได้ ขึ้นอยู่กับออบเจ็กต์ที่เรียกใช้
- คำจำกัดความ: "หลายรูปแบบ" — ความสามารถของออบเจ็กต์ต่างชนิดในการตอบสนองต่อการเรียกใช้ method เดียวกันได้แตกต่างกัน
- จุดประสงค์: เพิ่มความยืดหยุ่นและการทำงานร่วมกันของโค้ด โดยทำให้ออบเจ็กต์สามารถสับเปลี่ยนกันได้
มาดูกันครับว่าพหุรูปสัณฐานทำงานอย่างไรใน Python!
การนำพหุรูปสัณฐานมาใช้
คุณสามารถสร้างพหุรูปสัณฐานใน Python ได้ผ่านการเขียนทับ method และการใช้ฟังก์ชันในตัวที่ทำงานกับออบเจ็กต์หลายชนิด
- การเขียนทับ Method: การกำหนด method ใหม่ในคลาสลูก ซึ่งเดิมมีการกำหนดไว้แล้วในคลาสแม่
- ฟังก์ชันในตัว: ฟังก์ชันอย่าง
len()ที่ทำงานกับชนิดข้อมูลหลากหลาย
มาดูรายละเอียดของการเขียนทับ method กันครับ
การเขียนทับ Method
การเขียนทับ method ช่วยให้คลาสลูกกำหนดการทำงานเฉพาะของ method ที่มีการกำหนดไว้แล้วในคลาสแม่ได้ นี่เป็นองค์ประกอบสำคัญของพหุรูปสัณฐาน
ตัวอย่าง:
# Defines the Animal parent class with a speak method
class Animal:
def speak(self):
print("The animal makes a sound.") # Generic speak method
การสร้างคลาสลูกที่มี Method ถูกเขียนทับ
มาสร้างคลาสลูกที่สืบทอดมาจาก Animal และเขียนทับ method speak เพื่อกำหนดพฤติกรรมเฉพาะกันครับ
ตัวอย่าง:
# Defines the Dog child class inheriting from Animal
class Dog(Animal):
def speak(self):
print("The dog barks.") # Overridden speak method
# Defines the Cat child class inheriting from Animal
class Cat(Animal):
def speak(self):
print("The cat meows.") # Overridden speak method
การใช้พหุรูปสัณฐานกับ Methods ที่ถูกเขียนทับ
ตอนนี้มาสร้างออบเจ็กต์จากคลาสลูก แล้วดูว่าออบเจ็กต์เหล่านั้นแสดงพฤติกรรมแตกต่างกันได้อย่างไรเมื่อใช้ชื่อ method เดียวกัน
ตัวอย่าง:
# Creates objects of Dog and Cat classes
dog = Dog()
cat = Cat()
# Calls the speak method on both objects
dog.speak() # Output: The dog barks.
cat.speak() # Output: The cat meows.
พหุรูปสัณฐานกับฟังก์ชันในตัว
พหุรูปสัณฐานไม่ได้จำกัดอยู่เฉพาะคลาสที่ผู้ใช้กำหนดเท่านั้น ฟังก์ชันในตัวของ Python เช่น len() สามารถทำงานกับชนิดข้อมูลต่าง ๆ ได้ ซึ่งแสดงให้เห็นพฤติกรรมแบบพหุรูปสัณฐาน
ตัวอย่าง:
# Uses len() with a list
my_list = [1, 2, 3, 4]
print(len(my_list)) # Output: 4
# Uses len() with a string
my_string = "Hello"
print(len(my_string)) # Output: 5
# Uses len() with a dictionary
my_dict = {"a": 1, "b": 2}
print(len(my_dict)) # Output: 2
โปรแกรมตัวอย่าง: การคำนวณพื้นที่รูปทรง
มาสร้างโปรแกรมที่คำนวณพื้นที่ของรูปทรงต่าง ๆ โดยใช้พหุรูปสัณฐานกันครับ เราจะกำหนดคลาสแม่ Shape และคลาสลูก Circle กับ Rectangle ซึ่งเขียนทับ method area
โค้ด:
# Defines the Shape parent class with an area method
class Shape:
def area(self):
pass # Placeholder method
# Defines the Circle child class inheriting from Shape
class Circle(Shape):
def __init__(self, radius):
self.radius = radius # Sets the radius of the circle
def area(self):
return 3.14 * self.radius ** 2 # Calculates area of the circle
# Defines the Rectangle child class inheriting from Shape
class Rectangle(Shape):
def __init__(self, width, height):
self.width = width # Sets the width of the rectangle
self.height = height # Sets the height of the rectangle
def area(self):
return self.width * self.height # Calculates area of the rectangle
# Creates objects of Circle and Rectangle classes
circle = Circle(5)
rectangle = Rectangle(4, 6)
# Calculates and prints areas using polymorphism
print("Circle Area:", circle.area()) # Output: Circle Area: 78.5
print("Rectangle Area:", rectangle.area()) # Output: Rectangle Area: 24
# Defines the Vehicle parent class with a move method
class Vehicle:
def move(self):
print("The vehicle moves.")
# Defines the Bicycle child class inheriting from Vehicle
class Bicycle(Vehicle):
def move(self):
print("The bicycle pedals forward.")
# Defines the Airplane child class inheriting from Vehicle
class Airplane(Vehicle):
def move(self):
print("The airplane flies in the sky.")
# Creates objects of Bicycle and Airplane classes
bike = Bicycle()
plane = Airplane()
# Calls the move method on both objects
bike.move()
plane.move()
เก่งมากครับ!
คุณได้เรียนรู้เกี่ยวกับพหุรูปสัณฐานใน Python และวิธีที่แนวคิดนี้ทำให้ออบเจ็กต์จากคลาสต่าง ๆ ตอบสนองต่อการเรียกใช้ method เดียวกันได้แตกต่างกันแล้ว พหุรูปสัณฐานช่วยเพิ่มความยืดหยุ่นและความสามารถในการขยายโค้ด ทำให้จัดการและต่อยอดได้ง่ายขึ้น ฝึกฝนต่อไปด้วยการสร้างคลาสและ methods เพิ่มเติมที่ใช้พฤติกรรมแบบพหุรูปสัณฐาน เพื่อเสริมความเข้าใจของคุณครับ!

คำถามที่พบบ่อย
บทเรียน “พหุสัณฐาน ” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “พหุสัณฐาน ” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Python For Kids ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Python For Kids มีบทเรียนทั้งหมด 5 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “พหุสัณฐาน ”
สำรวจแนวคิดขั้นสูงของการเขียนโปรแกรมเชิงวัตถุ คุณปฏิบัติ Python For Kids ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Python For Kids หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Python For Kids บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 5 จากทั้งหมด 5 บทเรียน
บทเรียน “พหุสัณฐาน ” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Python For Kids นี้ได้ไหม
ได้ บทเรียน Python For Kids ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ