5.2 การทำงานของ Method Overloading และ Method Overriding
5.2 การทำงานของ Method Overloading และ Method Overriding
Method Overloading (การซ้อนทับเมธอด)
Method Overloading หมายถึงการสร้างเมธอดหลายตัวที่มีชื่อเดียวกันในคลาสเดียวกัน แต่แตกต่างกันที่พารามิเตอร์ (เช่น จำนวนหรือชนิดของพารามิเตอร์) ทำให้เมธอดสามารถทำงานได้หลายรูปแบบตามพารามิเตอร์ที่เรียกใช้
ตัวอย่าง:
class MathOperations:
# Method Overloading โดยใช้พารามิเตอร์ที่ต่างกัน
def add(self, a, b, c=0):
return a + b + c
math_op = MathOperations()
print(math_op.add(5, 10)) # ผลลัพธ์คือ 15
print(math_op.add(5, 10, 15)) # ผลลัพธ์คือ 30
ในตัวอย่างนี้ เมธอด add() สามารถทำงานได้ทั้งในกรณีที่รับพารามิเตอร์สองหรือสามค่า
Method Overriding (การเขียนทับเมธอด)
Method Overriding หมายถึงการที่คลาสย่อย (Subclass) เขียนทับการทำงานของเมธอดที่สืบทอดมาจากคลาสหลัก (Superclass) โดยใช้ชื่อเมธอดเดียวกันและมีพารามิเตอร์เหมือนกัน การเขียนทับนี้ทำให้สามารถกำหนดพฤติกรรมเฉพาะในคลาสย่อยได้
ตัวอย่าง:
class Animal:
def sound(self):
print("Some generic animal sound")
class Dog(Animal):
def sound(self):
print("Woof!") # เขียนทับเมธอด sound ในคลาส Animal
class Cat(Animal):
def sound(self):
print("Meow!") # เขียนทับเมธอด sound ในคลาส Animal
dog = Dog()
cat = Cat()
dog.sound() # ผลลัพธ์คือ "Woof!"
cat.sound() # ผลลัพธ์คือ "Meow!"
ในตัวอย่างนี้ เมธอด sound() ของคลาส Dog และ Cat จะเขียนทับเมธอด sound() ของคลาส Animal ทำให้แต่ละคลาสแสดงเสียงของสัตว์ที่แตกต่างกันออกไป