Polymorphism หรือการมีหลายรูปแบบใน OOP (Object-Oriented Programming) คือหนึ่งในหลักการพื้นฐานของการเขียนโปรแกรมที่เน้นการใช้ Object โดย Polymorphism อนุญาตให้ Objects ต่างๆ สามารถถูกเข้าถึงผ่าน interface ที่เหมือนกันแต่สามารถทำงานได้หลายแบบขึ้นอยู่กับ Type หรือ Class ที่อ้างอิง
ตัวอย่างที่ชัดเจนของ Polymorphism ใน Java คือการที่เราสามารถเรียก Method เดียวกันของ Object ที่เป็นลูกของ Class ต่างกันได้โดยไม่มีปัญหา ลองมาดูตัวอย่างนี้:
class Animal {
void makeSound() {
System.out.println("Some sound");
}
}
class Dog extends Animal {
void makeSound() {
System.out.println("Bark bark");
}
}
class Cat extends Animal {
void makeSound() {
System.out.println("Meow meow");
}
}
public class TestPolymorphism {
public static void main(String[] args) {
Animal myAnimal = new Animal(); // Create a Animal object
Animal myDog = new Dog(); // Create a Dog object
Animal myCat = new Cat(); // Create a Cat object
myAnimal.makeSound(); // Output: Some sound
myDog.makeSound(); // Output: Bark bark
myCat.makeSound(); // Output: Meow meow
}
}
ในตัวอย่างด้านบน, เราสร้าง Class หลักที่ชื่อว่า `Animal` และมี subclass `Dog` และ `Cat` ที่ override method `makeSound()`. เมื่อเราสร้าง Object ของ `Dog` และ `Cat` แต่ระบุให้ Data type ของพวกเขาเป็น `Animal`, Java virtual machine (JVM) จะเรียก method `makeSound()` ตามประเภทโดยที่ไม่ต้องคำนึงถึงการ define ของตัวแปร
หนึ่งใน use cases ของ Polymorphism ที่เกิดขึ้นบ่อยคือในการออกแบบระบบ UI controls. เช่น, ปุ่ม, checkboxes และ sliders สามารถสืบทอดมาจาก class `Control` และ override method เพื่อการตอบสนองในแบบของตัวมันเอง เมื่อวัตถุชนิดต่างๆ เหล่านี้ถูกเรียกให้ทำงานบางอย่าง, เราสามารถใช้ Interface เดียวกันได้โดยไม่คำนึงถึงประเภทของ object ที่จริง
อีกตัวอย่างหนึ่งคือระบบการชำระเงิน การแบ่ง Class สำหรับการชำระเงินไม่ว่าจะเป็น CreditCard, PayPal, หรือ BitcoinWallet ต่างก็อาจมี method `processPayment()` เหมือนกัน แต่การทำงานภายในของแต่ละวิธีจะแตกต่างกันไปตามตรรกะของวิธีชำระเงินนั้นๆ:
interface Payment {
void processPayment(double amount);
}
class CreditCard implements Payment {
public void processPayment(double amount) {
// Logic for CreditCard payment processing
}
}
class PayPal implements Payment {
public void processPayment(double amount) {
// Logic for PayPal payment processing
}
}
class BitcoinWallet implements Payment {
public void processPayment(double amount) {
// Logic for Bitcoin payment processing
}
}
การใช้ Polymorphism ทำให้โปรแกรมมีความยืดหยุ่นในการดำเนินการหลายอย่างบน object ที่ต่างกัน ทำให้โค้ดลดความซับซ้อนและง่ายต่อการบำรุงรักษา
หากคุณสนใจที่จะศึกษาหลักการ Polymorphism หรือแนวคิด OOP เพิ่มเติม ที่ EPT เรามีคอร์สที่จะค่อยๆ พาคุณเข้าใจถึงความสำคัญและวิธีการใช้งานของ Polymorphism ในภาษา Java อย่างละเอียด พร้อมคอร์สอื่นๆ ที่จะช่วยเพิ่มทักษะการเขียนโปรแกรมของคุณให้สมบูรณ์แบบยิ่งขึ้น!
หมายเหตุ: ข้อมูลในบทความนี้อาจจะผิด โปรดตรวจสอบความถูกต้องของบทความอีกครั้งหนึ่ง บทความนี้ไม่สามารถนำไปใช้อ้างอิงใด ๆ ได้ ทาง EPT ไม่ขอยืนยันความถูกต้อง และไม่ขอรับผิดชอบต่อความเสียหายใดที่เกิดจากบทความชุดนี้ทั้งทางทรัพย์สิน ร่างกาย หรือจิตใจของผู้อ่านและผู้เกี่ยวข้อง
Tag ที่น่าสนใจ: polymorphism oop object-oriented_programming java interface subclass method_override ui_controls design_pattern payment_processing creditcard paypal bitcoinwallet flexibility code_maintenance
หากมีข้อผิดพลาด/ต้องการพูดคุยเพิ่มเติมเกี่ยวกับบทความนี้ กรุณาแจ้งที่ http://m.me/Expert.Programming.Tutor
085-350-7540 (DTAC)
084-88-00-255 (AIS)
026-111-618
หรือทาง EMAIL: NTPRINTF@GMAIL.COM
Copyright (c) 2013 expert-programming-tutor.com. All rights reserved. | 085-350-7540 | 084-88-00-255 | ntprintf@gmail.com