【Kotlin】Kotlin 委托 ( 使用 by 关键字进行接口委托 )
生活随笔
收集整理的這篇文章主要介紹了
【Kotlin】Kotlin 委托 ( 使用 by 关键字进行接口委托 )
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- I . 定義 和 實現普通接口
- II . 使用委托實現接口
- III . 使用委托實現接口的基礎上執行額外操作
- IV . 測試上述三種接口實現 ( 普通實現 | 委托 | 委托 + 額外操作 )
I . 定義 和 實現普通接口
1 . 定義普通的接口 : 使用 interface 聲明接口 , 接口中的方法沒有方法體 , 也不用 abstract 關鍵字修飾 ;
package entrust/*** 定義一個學習接口 , 代表有學習的能力*/ interface IStudy {/*** 抽象方法 , 學習*/fun study()}2 . 實現接口 : 使用 “:” 聲明該類實現的接口 , 是接口的子類 , 注意類中必須實現接口的方法 , 實現方法需要使用 override 修飾 ;
package entrust/*** 定義學生類 , 實現學習接口 , 其有學習的能力*/ class Student : IStudy {/*** 實現的學習抽象方法*/override fun study() {println("學習")} }II . 使用委托實現接口
使用委托實現接口 : 使用 : IStudy 聲明該類實現了 IStudy 接口 , 但是這個類不實現 study() 抽象方法 , 而是委托給了 Student 類 , 當調用 BadStudent 的 study() 方法時 , 會自動調用 Student 類的 Study ( ) 方法 ;
package entrust/*** 壞學生不學習 , 雖然實現了學習接口 , 但是其委托 普通學生來學習 , 自己什么都不做*/ class BadStudent : IStudy by Student() { }III . 使用委托實現接口的基礎上執行額外操作
使用委托實現接口的基礎上執行額外操作 : 當類實現接口 , 并將接口的操作委托給了另外的類 , 此時仍可以實現接口中的方法 , 在重寫的方法中 , 可以調用委托方法 , 并且還可以額外做其它操作 ;
package entrust/*** 最好的學生* 委托 學生學習 , 自己額外學習更多東西*/ class BestStudent : IStudy by Student() {/*** 委托其它類后 , 也可以自己實現該類 , 在委托方法的前后可以執行其它額外操作*/override fun study() {println("復習之前的知識")Student().study()println("加強學習")}}IV . 測試上述三種接口實現 ( 普通實現 | 委托 | 委托 + 額外操作 )
測試上述三種情況 :
① 測試接口實現類 ;
② 測試委托 ;
③ 測試委托的同時額外執行其它操作 ;
package entrustfun main() {// I . 測試接口實現類//創建 接口實現類 對象var goodStudent : Student = Student()//執行實現的內容// 學習goodStudent.study()// II . 測試委托// 創建 使用委托實現接口 類的對象var badStudent : BadStudent = BadStudent()//執行委托的方法// 學習badStudent.study()//III . 測試委托的同時額外執行其它操作//創建 使用委托實現接口并執行額外操作 類的對象var bestStudent : BestStudent = BestStudent()//執行委托方法和額外操作/*復習之前的知識學習加強學習*/bestStudent.study()}總結
以上是生活随笔為你收集整理的【Kotlin】Kotlin 委托 ( 使用 by 关键字进行接口委托 )的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Kotlin】Kotlin 抽象类与接
- 下一篇: 【RecyclerView】 一、Rec