0Pricing
Python For Kids · บทเรียน

พหุสัณฐาน

สำรวจแนวคิดขั้นสูงของการเขียนโปรแกรมเชิงวัตถุ

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

พหุรูปสัณฐาน

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

พหุสัณฐาน  — ภาพประกอบ 1

พหุรูปสัณฐานคืออะไร

พหุรูปสัณฐานเป็นแนวคิดพื้นฐานใน 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 เพิ่มเติมที่ใช้พฤติกรรมแบบพหุรูปสัณฐาน เพื่อเสริมความเข้าใจของคุณครับ!

พหุสัณฐาน  — ภาพประกอบ 10

คำถามที่พบบ่อย

บทเรียน “พหุสัณฐาน ” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “พหุสัณฐาน ” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. บทนำสู่การเขียนโปรแกรมเชิงวัตถุ
  2. การสร้างคลาสและออบเจกต์
  3. การสืบทอด
  4. การห่อหุ้ม
  5. พหุสัณฐาน
← กลับไปที่ Python For Kids