Inheritance and Interfaces
Polymorphism
Call the same interface method on different classes.
Polymorphism
Polymorphism.kt
interface Speaker {
fun speak(): String
}
class SoftSpeaker : Speaker {
override fun speak(): String {
return "soft"
}
}
class LoudSpeaker : Speaker {
override fun speak(): String {
return "loud"
}
}
fun main() {
val loud =
val speaker: Speaker = if (loud) LoudSpeaker() else SoftSpeaker()
val sound = speaker.speak()
println("loud=$loud")
println("sound=$sound")
}
interface Speaker {
fun speak(): String
}
class SoftSpeaker : Speaker {
override fun speak(): String {
return "soft"
}
}
class LoudSpeaker : Speaker {
override fun speak(): String {
return "loud"
}
}
fun main() {
val loud =
val speaker: Speaker = if (loud) LoudSpeaker() else SoftSpeaker()
val sound = speaker.speak()
println("loud=$loud")
println("sound=$sound")
}
polymorphism
Polymorphism lets code use a shared type while the object decides the method result.