Skip to content
Siamcoder

การใช้งานการสืบทอดและการพ้อยคลาสใน Kotlin

kotlin1 min read

การใช้งานการสืบทอดและพอลิมอร์ฟิสึมใน Kotlin

ใน Kotlin, เราสามารถใช้งานการสืบทอดและพอลิมอร์ฟิสึมเพื่อสร้างความสัมพันธ์และการทำงานร่วมกันระหว่างคลาสได้ นี่คือตัวอย่างการใช้งานการสืบทอดและพอลิมอร์ฟิสึมใน Kotlin:

  1. การสืบทอดคลาส (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 ช่วยให้เราสามารถสร้างความสัมพันธ์ระหว่างคลาสได้และใช้งานวัตถุของคลาสย่อยในลักษณะของคลาสหลักได้อย่างยืดหยุ่น

  1. การใช้งาน 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 ช่วยให้เราสามารถสร้างความยืดหยุ่นในการสร้างความสัมพันธ์ระหว่างคลาสและใช้งานวัตถุในรูปแบบที่หลากหลายได้