ใช่ ,Python รองรับ ความหลากหลาย
คำว่า polymorphism หมายถึง มีหลายรูปแบบ
ความหลากหลาย เป็นคุณลักษณะที่สำคัญของการกำหนดคลาสใน Python ที่ใช้เมื่อคุณตั้งชื่อเมธอดทั่วคลาสหรือคลาสย่อยโดยทั่วไป
ความหลากหลายสามารถทำได้ผ่านการสืบทอด โดยมีคลาสย่อยที่ใช้เมธอดของคลาสฐานหรือแทนที่พวกมัน
ความหลากหลายมีสองประเภท
- โอเวอร์โหลด
- การเอาชนะ
โอเวอร์โหลด :การโอเวอร์โหลดเกิดขึ้นเมื่อสองเมธอดหรือมากกว่าในคลาสหนึ่งมีชื่อเมธอดเหมือนกัน แต่มีพารามิเตอร์ต่างกัน
เอาชนะ :การแทนที่หมายถึงมีสองเมธอดที่มีชื่อเมธอดและพารามิเตอร์เหมือนกัน (เช่น ลายเซ็นเมธอด) เมธอดหนึ่งอยู่ในคลาสพาเรนต์และอีกเมธอดอยู่ในคลาสย่อย
ตัวอย่าง
class Fish():
def swim(self):
print("The Fish is swimming.")
def swim_backwards(self):
print("The Fish can swim backwards, but can sink backwards.")
def skeleton(self):
print("The fish's skeleton is made of cartilage.")
class Clownfish():
def swim(self):
print("The clownfish is swimming.")
def swim_backwards(self):
print("The clownfish can swim backwards.")
def skeleton(self):
print("The clownfish's skeleton is made of bone.")
a = Fish()
a.skeleton()
b = Clownfish()
b.skeleton()
เมื่อเรารันโปรแกรมด้วยคำสั่ง python polymorphism.py เราจะได้ผลลัพธ์ที่คาดหวัง -
ผลลัพธ์
The fish's skeleton is made of cartilage. The clownfish's skeleton is made of bone.