OOP Mastery - inheritance in kotlin
OOP Mastery - inheritance in kotlin

OOP Mastery: Inheritance trong Kotlin

OOP Mastery là chuỗi bài viết tự học Lập trình hướng đối tượng với ngôn ngữ Kotlin được biên soạn tại DanTech0xFF. Mục đích của chuỗi bài viết này là cung cấp cái nhìn toàn diện về Hướng đối tượng trong ngôn ngữ Kotlin. Đây sẽ là nền tảng vững chắc cho Lập trình viên trong tương lai nếu các bạn đi sâu về mảng Android, Mobile Cross Platform, hoặc Backend Java.

Trong bài viết này chúng ta sẽ phân tích Tính Kế thừa của OOP trong ngôn ngữ lập trình Kotlin.

Nhắc lại tính kế thừa

Kế thừa (Inheritance) là khả năng giúp 1 Class sử dụng lại các thuộc tính (properties) và hàm (method, behavior) từ 1 Class khác.

Trong bài viết này mình sẽ chia sẻ sâu về kế thừa trong ngôn ngữ Kotlin.

Kế thừa trong Kotlin

Access Modifier Base ClassAccess Modifier Sub Class
privateNOT INHERITANCE
protectedprotected
internalinternal
publicpublic
Bảng mô tả kế thừa trong OOP Kotlin

Cú pháp kế thừa

Kotlin chặt chẽ trong việc xác định một Class có kế thừa được hay không. Để khai báo một class có khả năng kế thừa bạn cần đặt thêm keyword open trước khai báo class.

open class OpenBaseClass {
    private val privateVar = 1
    protected val protectedVar = 2
    internal val internalVar = 3
    val publicVar = 4

    private fun privateFunction() {
        println("Private Function")
    }

    protected fun protectedFunction() {
        println("Protected Function")
    }

    internal fun internalFunction() {
        println("Internal Function")
    }

    fun publicFunction() {
        println("Public Function")
    }
}
class SubClass : OpenBaseClass() {
    fun callPrivateVar() {
        // Not able to access privateVar
    }
    fun callPublicVar() {
        println(publicVar)
    }
    fun callProtectedVar() {
        println(protectedVar)
    }
    fun callInternalVar() {
        println(internalVar)
    }
    fun callPrivateFunction() {
        // Not able to access privateFunction
    }
    fun callPublicFunction() {
        publicFunction()
    }
    fun callProtectedFunction() {
        protectedFunction()
    }
    fun callInternalFunction() {
        internalFunction()
    }
}

Đoạn code mô tả kế thừa trong OOP Kotlin

Về cơ bản kế thừa trong Kotlin chỉ có thế. Bài viết tiếp theo sẽ hướng dẫn cụ thể Đa hình (Polymorphism) và Trừu tượng (Abstraction) trong Kotlin. Mời bạn đọc tiếp nhé!