Hotline: 0919 365 363; Email: daotao@r2s.edu.vn

Blog

Tính thừa kế trong Kotlin

Tính thừa kế trong Kotlin
Kiến thức hữu ích

Tính thừa kế trong Kotlin

Tính kế thừa trong Kotlin tương tự như tính kế thừa trong lập trình Javalập trình C#.. Điều này giúp các lập trình viên tiết kiệm rất nhiều thời gian xử lý trong quá trình phát triển ứng dụng. Kế thừa là một trong những đặc điểm của lập trình hướng đối tượng.

Mỗi nhân viên bao gồm thông tin về họ tên, giới tính, số điện thoại và trình độ chuyên môn. Đối với khách hàng, ứng dụng cần quản lý họ tên, giới tính, số điện thoại và số điểm tích lũy khi mua hàng. Hãy tưởng tượng rằng chúng ta cần xây dựng một ứng dụng quản lý doanh nghiệp cho một công ty.

Bạn có thấy điều gì trong tình huống trên không? Xin lưu ý rằng các thông tin cần quản lý của nhân viên và khách hàng về cơ bản là giống nhau, chỉ khác nhau một điểm: trình độ chuyên môn của nhân viên và điểm tích lũy của khách hàng.

Chúng ta sẽ giải quyết yêu cầu trên như thế nào? Câu trả lời ở ngay bên dưới

Tính thừa kế trong Kotlin là gì?

Tính thừa kế (inheritance) trong Kotlin là khả năng cho một lớp (class) mới kế thừa các thuộc tính (properties) và phương thức (methods) từ một lớp khác đã tồn tại. 

Lớp mới được gọi là lớp con (subclass) hoặc lớp dẫn xuất (derived class), trong khi lớp từ đó kế thừa được gọi là lớp cha (superclass) hoặc lớp cơ sở (base class). 

Khi một lớp kế thừa từ một lớp cha, nó sẽ kế thừa các thuộc tính và phương thức có phạm vi truy cập công khai hoặc bảo vệ từ lớp cha, và nó có thể mở rộng hoặc ghi đè (override) chúng theo nhu cầu. 

Điều này giúp tạo ra một hệ thống lớp có tính đa hình (polymorphism) và tiện ích trong việc phát triển ứng dụng Kotlin.

Cú pháp của tính thừa kế trong Kotlin

1/ Đối với lớp cơ sở (lớp cha): Chúng ta đặt open trước từ khóa class

open class tên_lớp_cha {
  //Code here
}

2/ Đối với lớp được thừa kế (lớp con): Chúng ta đặt dấu hai chấm sau tên lớp

class tên_lớp_con : tên_lớp_cha {
  //Code here
}

3/ Ví dụ khai báo lớp cha là Person và lớp con là Employee

Khai báo lớp Person có một hàm được khởi tạo nhận 2 tham số là mã và tên

open class Person (var id: String, var name: String) {
  //Code here
}

Khai báo lớp Employee thừa kế lớp Person, lớp Employee có một hàm khởi tạo có 3 tham số bao gồm là mã, tên và bằng cấp. Khi lớp con thừa kế lớp cha có hàm khởi tạo thì lớp con bắt buộc cần phải có phương thức khởi tạo với số lượng tham số tương tự như lớp cha.

class Employee(id: String,name: String, qualification: String)
                                                : Person(id,name) {
  //Code here
}

Override trong Kotlin của tính thừa kế trong Kotlin

Override trong Kotlin là một khái niệm cho phép lớp con ghi đè lại phương thức của lớp cha. Khi phương thức trong lớp con được ghi đè, nghĩa là lớp con cung cấp một triển khai riêng cho phương thức đó thay vì sử dụng triển khai mặc định từ lớp cha. 

Khi đối tượng của lớp con được gọi để gọi phương thức đó, triển khai của lớp con sẽ được thực thi. Để ghi đè một phương thức, ta có thể sử dụng từ khóa “override” trước khai báo phương thức trong lớp con. 

Việc sử dụng override đảm bảo rằng phương thức trong lớp con cần phải có cùng tên, kiểu trả về và tham số như phương thức trong lớp cha.

Như chúng ta đã biết, override được đề cập ở lớp con với mục đích là từ chối kế thừa của lớp cha. Hay nói cách khác, lớp con khai báo, thay đổi xử lý của những phương thức ở lớp cha.

1/ Tại lớp cha: Đối với những phương thức cho phép lớp con override thì lập trình viên phải chỉ định từ khóa open

open fun tên_hàm() {
  // xử lý của hàm
}

2/ Tại lớp con: Đối với những phương thức thực hiện override thì lập trình viên phải chịnh định từ khóa override

override fun tên_hàm() {
  xử lý của hàm
}

Lưu ý tên hàm khai báo ở lớp con phải giống như ở lớp cha

3/ Ví dụ về override trong Kotlin

Tại lớp cha

open class Person (var id: String, var name: String) {  
    open fun input() {
        print("Hãy nhập mã: ")
        id = readLine()!!

        print("Hãy nhập tên: ")
        name = readLine()!!
    }
}

Tại lớp con

class Employee(id: String,name: String, var qualification: String) 
                                  : Person(id,name) {
    // Phương thức thực hiện override
    override fun input() {

       // Gọi phương thức của lớp cha
        super.input()

        print("Hãy nhập bằng cấp: ")
        qualification = readLine()!!
    }    
}

Ví dụ mẫu của tính thừa kế trong Kotlin

1/ Mở IntlliJ IDE và tạo ra một project

2/ Tạo một Kotlin class, đặt tên là Person và cài đặt code như hình

Tính thừa kế trong Kotlin

3/ Tạo một Kotlin class, đặt tên là Employee và cài đặt code như hình

Tính thừa kế trong Kotlin

4/ Tạo một Kotlin class, đặt tên là Program và cài đặt code như hình

Tính thừa kế trong Kotlin

Kết luận của tính thừa kế trong Kotlin

Như vậy, qua bài viết về tính thừa kế trong Kotlin trên đây, R2S chúng tôi đã giúp bạn hiểu được về tính thừa kế trong Kotlin là gì?, Cú pháp, Override trong Kotlin, Ví dụ mẫu của tính thừa kế trong Kotlin.

Đừng quên bỏ lỡ bất cứ bài viết nào của chúng tôi để có thể học thêm nhiều kiến thức hữu ích về lập trình kotlin nhé.

Hãy đến với website của R2S để có thể tìm hiểu sâu hơn vào lập trình và công nghệ thông tin để có thêm nhiều kiến thức về nó hơn nhé. 

Bài viết gốc được đăng tải tại giasutinhoc.vn

Alert: You are not allowed to copy content or view source !!