Inheritance is a mechanism to create a sub class that inherits attributes and methods from parent class. Basically, each class that created in Kotlin is inherits attributes and methods from Any class.
In general, parent class is a general representation from an entity whilst sub class is a more specific representation from an entity. The inheritance mechanism is illustrated in this picture.
Create an Inheritance
In Kotlin, the inheritance mechanism can be created with : notation followed with the parent class name. In this example, there are two classes called Car and RaceCar. The Car class is a parent class when the RaceCar class is a sub class from Car class. The relation between Car class and RaceCar class is illustrated in this picture.
The Car class is created inside Car.kt file.
open class Car (val manufacturer: String, val type: String) {
open fun run() {
println("Running...")
}
}
The RaceCar class is created inside RaceCar.kt file.
// create a RaceCar class that inherits Car class
class RaceCar(val team: String, manufacturer: String, type: String) : Car(manufacturer, type) {
// create a specific implementation for run() method
// in RaceCar class
override fun run() {
println("Running with racing spec from $team")
}
}
The object from RaceCar class is created in main() method.
fun main() {
// create an object from RaceCar class
val raceCar = RaceCar("Manthey Racing","Porsche","911 GT3")
// call run() method
raceCar.run()
}
Output
Running with racing spec from Manthey Racing
Based on the code above, the Car class is acts as parent class with open keyword is added before class declaration. The open keyword means a class can be inherited by another class. In Car class, the run() method is added with open keyword that means this method can be override or implemented specifically in a sub class.
The sub class from Car class is RaceCar class. The RaceCar class implements the run() method specifically with override keyword. The object from RaceCar class is created in main() method then the run() method is called from the created object.
Notes
The multiple inheritance mechanism is not available in Kotlin. Multiple inheritance is a mechanism that allows a class could inherits from many parent classes. This is the illustration of multiple inheritance.
The multilevel inheritance is available in Kotlin. This is the illustration of multilevel inheritance.
Sources
- Learn more about inheritance in Kotlin in this link.
I hope this article is helpful for learning the Kotlin programming language. If you have any thoughts or comments you can write in the discussion section below.




Top comments (0)