# การใช้งาน Polymorphism ใน Concept ของ OOP ในภาษา Kotlin : ปรับให้ง่าย และใช้งานได้จริง
ในวงการโปรแกรมมิ่ง หนึ่งในคอนเซ็ปต์สำคัญที่นักพัฒนาไม่ควรมองข้ามคือการเขียนโปรแกรมแบบวัตถุ หรือ Object-Oriented Programming (OOP) ซึ่งประกอบไปด้วยหลัก 4 ประการ คือ Encapsulation, Inheritance, Polymorphism และ Abstraction ในบทความนี้เราจะมาพูดถึง Polymorphism ภายใต้ภาษา Kotlin ว่ามันคืออะไร ทำงานอย่างไร และในโลกจริงเราสามารถใช้ประโยชน์จากมันได้อย่างไร พร้อมด้วยตัวอย่างโค้ดเพื่อให้เห็นภาพชัดเจนยิ่งขึ้น
"Polymorphism" ในภาษากรีกหมายถึง "หลายรูปแบบ" โดยในโลกของ OOP, Polymorphism หมายถึงความสามารถในการเรียกใช้ methods ของ object ที่แตกต่างกันได้ผ่าน interface หรือ class รูปแบบเดียวกัน ทำให้โค้ดของเรามีความยืดหยุ่นและสามารถขยายส่วนประกอบของโปรแกรมได้โดยไม่ต้องเปลี่ยนแปลงโค้ดที่มีอยู่มากนัก
ตัวอย่างที่ 1: Polymorphism พื้นฐาน
open class Animal {
open fun sound() {
println("This animal makes a sound.")
}
}
class Dog : Animal() {
override fun sound() {
println("The dog says: Woof Woof")
}
}
class Cat : Animal() {
override fun sound() {
println("The cat says: Meow")
}
}
fun makeAnimalSound(animal: Animal) {
animal.sound()
}
fun main() {
val myDog = Dog()
val myCat = Cat()
makeAnimalSound(myDog) // Output: The dog says: Woof Woof
makeAnimalSound(myCat) // Output: The cat says: Meow
}
ในตัวอย่างนี้, `Dog` และ `Cat` คือ subclasses ของ `Animal`. แต่ละคลาสมีการ implement method `sound()` ของตัวเอง ซึ่ง method `makeAnimalSound()` สามารถรับได้ทั้ง `Dog` หรือ `Cat` object เนื่องจากพวกมันเป็น `Animal` และเราไม่จำเป็นต้องเขียนโค้ดแยกสำหรับแต่ละประเภทของ `Animal`.
หมายเหตุ: ข้อมูลในบทความนี้อาจจะผิด โปรดตรวจสอบความถูกต้องของบทความอีกครั้งหนึ่ง บทความนี้ไม่สามารถนำไปใช้อ้างอิงใด ๆ ได้ ทาง EPT ไม่ขอยืนยันความถูกต้อง และไม่ขอรับผิดชอบต่อความเสียหายใดที่เกิดจากบทความชุดนี้ทั้งทางทรัพย์สิน ร่างกาย หรือจิตใจของผู้อ่านและผู้เกี่ยวข้อง
Tag ที่น่าสนใจ: polymorphism oop kotlin object-oriented_programming encapsulation inheritance abstraction methods interface class subclasses flexibility code_example animal sound
หากมีข้อผิดพลาด/ต้องการพูดคุยเพิ่มเติมเกี่ยวกับบทความนี้ กรุณาแจ้งที่ 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