Bỏ qua để đến nội dung

🧬 Kế thừa (Inheritance)

🎯 Mục tiêu: Hiểu kế thừa trong Kotlin với open, override, và abstract classes.


Mặc định class trong Kotlin là final (không thể kế thừa). Dùng open để cho phép.

open class Animal(val name: String) {
open fun makeSound() {
println("Some sound")
}
}
class Dog(name: String) : Animal(name) {
override fun makeSound() {
println("Woof!")
}
}

open class Parent {
open val property = "parent"
open fun method() { println("Parent method") }
}
class Child : Parent() {
override val property = "child"
override fun method() { println("Child method") }
}
class Child : Parent() {
override fun method() {
super.method() // Gọi Parent.method()
println("Child addition")
}
}

abstract class Shape {
abstract val area: Double
abstract fun draw()
// Non-abstract method
fun printArea() {
println("Area: $area")
}
}
class Circle(val radius: Double) : Shape() {
override val area: Double
get() = Math.PI * radius * radius
override fun draw() {
println("Drawing circle with radius $radius")
}
}

open class Parent(val name: String) {
init { println("Parent init: $name") }
}
class Child(name: String, val age: Int) : Parent(name) {
init { println("Child init: $name, $age") }
}
// Output when creating Child("Alice", 25):
// Parent init: Alice
// Child init: Alice, 25


  • Dùng open để cho phép kế thừa
  • Dùng override để ghi đè
  • Hiểu abstract class vs open class
  • Gọi super khi cần

Tiếp theo: Interface