Interface trong Kotlin (Bài 8)
Interface trong Kotlin cũng tương tự như Java. Nghĩa là bên trong interface chỉ chứa những phương thức trừu tượng. Một interface có được cài đặt bởi một lớp và lớp đó phải có nhiệm vụ cài đặt xử lý cho tất cả những phương thức được khai báo bên trong interface.
Interface trong Kotlin – Cú pháp khai báo
Trong Kotlin, chúng ta sử dụng từ khóa interface để định nghĩa một interface
interface tên_interface { // Khai báo thuộc tính var tên_thuộc_tính // Khai báo hàm fun tên_function(tham_số_nếu_có) }
Interface trong Kotlin – Ví dụ khai báo interface tên UserRepository
interface UserRepository { fun save(user : User): Boolean fun showInfo() { println("User repository") } }
Trong ví dụ trên, chúng tôi định nghĩa một interface tên UserRepository. Interface này có 2 hàm là save và showInfo. Trong đó hàm save là trừu tượng, nhưng hàm showInfo thì có phần xử lý. Và các bạn lưu ý hàm showInfo được gọi là hàm với cài đặt mặc định. Nghĩa là một lớp cài đặt (implement) UserRepository hoặc là viết lại xử lý hoặc sử dụng showInfo mà không cần cài đặt.
Interface trong Kotlin – Cài đặt interface
class tên_class : tên_interface { }
Ví dụ tạo một lớp tên UserRepositoryImpl cài đặt UserRepository
class UserRepositoryImpl : UserRepository {
override fun login(user : User) : Boolean {
println("Save an user into database")
return true;
}
}
Interface trong Kotlin – Cài đặt nhiều interface
interface UserRepository { fun login(user : User) : Boolean } interface ProductRepository { fun save(product : Product) } // Cài đặt 2 interface class Shopping : UserRepository, ProductRepository { override fun login(user : User) : Boolean { println("Handle login") return true; } override fun save(product : Product) { println("Save a product") } }
Trong ví dụ trên, lớp Shopping cài đặt 2 interface là UserRepository và ProductRepository. Và lớp Shopping phải có nhiệm vụ cài đặt xử lý cho hàm login và hàm save. Đây là xử lý bắt buộc chứ không phải là tùy chọn. Ngoại trừ những hàm có xử lý mặc định.
Interface trong Kotlin – Ví dụ mẫu
Trong bài này, chúng tôi sử dụng eclipse đã cài đặt Kotlin plugin để tạo một Kotlin project. Ngoài eclipse các bạn có thể sử dụng các IDE khác như IntelliJ IDEA.
Trong ví dụ mẫu này, chúng tôi tạo một interface tên UserRepository có 2 phương thức trừu tượng là save và getAll. Đối tượng mà chúng ta save và get là User có các thuộc tính như id, name, gender và address.
Các tính năng của ví dụ mẫu đó là thêm user, hiển thị thông tin tất cả user. Nghiệp vụ không phải là yếu tố quan trọng.
Bước 1: Tạo Kotlin project
Chọn File -> chọn New -> chọn Project…
Chọn Kotlin Project -> chọn Next
Nhập KotlinProject tại Project name -> chọn Finish
Bước 2: Tạo một lớp tên User
Chuột phải lên src -> chọn New -> chọn Other
Chọn Kotlin Class -> chọn Next
Nhập User tại Name -> chọn Finish
Viết xử lý cho lớp User
Bước 3: Tạo interface tên UserRepository
Chuột phải lên src -> chọn New -> chon Other…
Chọn Kotlin Interface -> chọn Next
Nhập UserRepository tại Name -> chọn Finish
Viết xử lý cho interface
Bước 4: Tạo một class thực hiện implements UserRepository
Viết xử lý cho UserRepositoryImpl (Cài đặt interface)
Bước 5: Tạo một file để chay có tên Program
Chuột phải src -> chọn New -> chọn Other… -> chọn Kotlin File
Nhập Program tại Name -> chọn Finish
Viết xử lý cho Program
Danh sách file của project sau khi đã hoàn thành tất cả các bước trên
Bước 6: Chạy chương trình
Chuột phải lên Program -> chọn Run as -> chọn Kotlin Application
Kết quả sau khi chạy