การใช้งานการสืบทอดและการพ้อยคลาสใน Kotlin
— kotlin — 1 min read
การใช้งานการสืบทอดและพอลิมอร์ฟิสึมใน Kotlin
ใน Kotlin, เราสามารถใช้งานการสืบทอดและพอลิมอร์ฟิสึมเพื่อสร้างความสัมพันธ์และการทำงานร่วมกันระหว่างคลาสได้ นี่คือตัวอย่างการใช้งานการสืบทอดและพอลิมอร์ฟิสึมใน Kotlin:
- การสืบทอดคลาส (Inheritance)
เราสามารถสร้างคลาสย่อยที่สืบทอดคุณสมบัติและพฤติกรรมจากคลาสหลักได้ โดยใช้คีย์เวิร์ด
:
ตัวอย่างการสืบทอดคลาสใน Kotlin:
open class Animal(val name: String) { open fun makeSound() { println("สัตว์ชนิดนี้กำลังสร้างเสียง") }}
class Dog(name: String) : Animal(name) { override fun makeSound() { println("$name สร้างเสียง: โฮ่งๆ") }}`
ในตัวอย่างข้างต้น, คลาส Dog
สืบทอดคุณสมบัติและพฤติกรรมจากคลาส Animal
และมีการโอเวอร์ไรด์เมทอด makeSound()
เพื่อสร้างเสียงของสุนัข
2. การใช้งานพอลิมอร์ฟิสึม (Polymorphism)
Kotlin รองรับการใช้งานพอลิมอร์ฟิสึมซึ่งช่วยให้เราสามารถใช้วัตถุของคลาสย่อยในลักษณะของคลาสหลักได้
ตัวอย่างการใช้งานพอลิมอร์ฟิสึมใน Kotlin:
fun makeAnimalSound(animal: Animal) { animal.makeSound()}
val animal1: Animal = Animal("สัตว์")val animal2: Animal = Dog("สุนัข")
makeAnimalSound(animal1)makeAnimalSound(animal2)`
ในตัวอย่างข้างต้น, เราสร้างฟังก์ชัน makeAnimalSound()
ที่รับวัตถุของคลาส Animal
และเรียกใช้งานเมทอด makeSound()
ของวัตถุนั้น ๆ โดยเราสามารถส่งวัตถุของคลาส Dog
ที่เป็นคลาสย่อยไปยังฟังก์ชันนี้ได้
การใช้งานการสืบทอดและพอลิมอร์ฟิสึมใน Kotlin ช่วยให้เราสาม ารถสร้างความสัมพันธ์ระหว่างคลาสได้และใช้งานวัตถุของคลาสย่อยในลักษณะของคลาสหลักได้อย่างยืดหยุ่น
- การใช้งาน Override Properties Kotlin รองรับการโอเวอร์ไรด์คุณสมบัติ (properties) ของคลาสหลักในคลาสย่อย ซึ่งช่วยให้เราสามารถปรับแต่งการทำงานของคุณสมบัติได้ตามต้องการ
ตัวอย่างการโอเวอร์ไรด์คุณสมบัติใน Kotlin:
open class Shape { open val area: Double = 0.0}
class Circle(val radius: Double) : Shape() { override val area: Double get() = 3.14 * radius * radius}`
ในตัวอย่างข้างต้น, คลาส Circle
โอเวอร์ไรด์คุณสมบัติ area
ที่ถูกประกาศในคลาส Shape
และใช้การคำนวณพื้นที่ของวงกลม
4. การใช้งาน Interface
Kotlin รองรับการใช้งานอินเทอร์เฟซ (interface) เพื่อให้คลาสสามารถมีพฤติกรรมที่ต่างกันได้ตามความต้องการ
ตัวอย่างการใช้งานอินเทอร์เฟซใน Kotlin:
interface Playable { fun play()}
class Guitar : Playable { override fun play() { println("เล่นกีตาร์") }}
class Piano : Playable { override fun play() { println("เล่นเปียโน") }}`
ในตัวอย่างข้างต้น, อินเทอร์เฟซ Playable
มีเมทอด play()
ซึ่งถูกโอเวอร์ไรด์ในคลาส Guitar
และ Piano
เพื่อมีพฤติกรรมการเล่นเครื่องดนตรีที่แตกต่างกัน
การใช้งานการสืบทอดและพอลิมอร์ฟิสึมใน Kotlin ช่วยให้เราสามารถสร้างความยืดหยุ่นในการสร้างความสัมพันธ์ระหว่างคลาสและใช้งานวัตถุในร ูปแบบที่หลากหลายได้