12/08/2018, 16:14

Interface trong Kotlin

Chào các bạn, bài này mình sẽ giới thiệu điểm khác giữa Interface của kotlin và Interface của Java. Đầu tiên các bạn cần phải biết interface là gì và nó dùng để làm gì... ( cái này có thể lên gg tra nha) Trong Java chúng ta thường tạo 1 interface như thế này : interface Xe { void ...

  • Chào các bạn, bài này mình sẽ giới thiệu điểm khác giữa Interface của kotlin và Interface của Java.
  • Đầu tiên các bạn cần phải biết interface là gì và nó dùng để làm gì... ( cái này có thể lên gg tra nha)
  • Trong Java chúng ta thường tạo 1 interface như thế này :
interface Xe {
    void XeDap();
    void XeHoi();
}
  • Sau đó ta implement ở class khác để định nghĩa các phương thức
interface Xe {
    fun XeDap()
    fun XeHoi()
}
  • Ở trên là cách tạo interface cơ bản nhất, Kotlin có thể tạo 1 interface giống hoàn toàn trong java và có một vài điểm khác biệt mà trong java không có. Ví dụ như sau :
interface Xe {
    fun XeDap()
    fun XeHoi(){
      Log.i("Tốc độ: "," 70 Km/h")
    }
}
  • Đây là 1 trong nhưng điểm nâng cấp trong kotlin mà java không thể làm được, khi ta implement interface Xe thì chỉ override được phương thức XeDap thôi, còn phương thức XeHoi chúng ta đã khai báo rồi nên không thể override lại nữa. Khi gọi phương XeHoi() thì nó sẽ tự động gọi phương thức mà chúng ta đã định nghĩa sẵn, ở đây là 1 Log.i("Tốc độ: "," 70 Km/h") -Một kiểu khai báo interface nữa là chúng ta có thể khai báo properties , xem ví dụ sau :
interface Xe {
    fun XeDap()
    fun XeHoi(){
      Log.i("Tốc độ: "," 70 Km/h")
    }
    val tocDo:Int
}
  • Chúng ta sẽ định nghĩa giá trị tocDo ở class mà ta đã implement để sử dụng.
class MainActivity : AppCompatActivity(),Xe{
  override val tocDo: Int
    get() =2
...
}
  • Hoặc có thể định nghĩa thẳng ở interface, ở class đã implement chỉ cần gọi ra để sử dụng. `` interface Xe { fun XeDap() fun XeHoi(){ Log.i("Tốc độ: "," 70 Km/h") } val tocDo:Int get() = 3 }
- Hay quá phải ko @@
# **Kết thúc**
- Cảm ơn các bạn đã đọc bài của mình .
- Các bạn có thể xem thêm ở [đây](https://kotlinlang.org/docs/reference/interfaces.html) để biết rõ hơn .
0