ใช่ ,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.