欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Kotlin 匿名類實(shí)現(xiàn)接口和抽象類的區(qū)別詳解

 更新時(shí)間:2020年03月16日 12:39:38   作者:afunyusong  
這篇文章主要介紹了Kotlin 匿名類實(shí)現(xiàn)接口和抽象類的區(qū)別詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧

我就廢話不多說了,還是上代碼吧

接口:

interface OnBind {

 fun onBindChildViewData(holder: String, itemData: Any, position: Int)

}
 lesson.does(object : OnBind {
  override fun onBindChildViewData(holder: String, itemData: Any, position: Int) {
   println(holder + itemData + position)
  }
 })

抽象類:

abstract class AbstractOnBind {

 abstract fun onBindChildViewData(holder: String, itemData: Any, position: Int)

}
 lesson.does(object : AbstractOnBind() {
  override fun onBindChildViewData(holder: String, itemData: Any, position: Int) {
   println(holder + itemData + position)
  }
 })

看到區(qū)別了嗎?哈哈,看不到?jīng)]關(guān)系,我告訴你。

他們之間唯一的區(qū)別就是調(diào)用時(shí)的下面這句,抽象類多了一個(gè)括號(hào)。

object : OnBind
object : AbstractOnBind()

就這么一點(diǎn)區(qū)別,其實(shí)本質(zhì)上是完全不一樣的。

在實(shí)現(xiàn)接口時(shí),object 代替了 java 中 new 一個(gè)對(duì)象,在這里“:“ 號(hào)后緊跟接口,接口沒有構(gòu)造方法,代表了object實(shí)現(xiàn)了這個(gè)接口;

而在實(shí)現(xiàn)抽象類的時(shí)候,抽象方法后邊有(),可以理解為調(diào)用了抽象方法的構(gòu)造方法,“new“出了一個(gè)對(duì)象后,賦給了object。

總結(jié)一下:為便于理解可以這么想(實(shí)際原理可能并不是這樣),接口時(shí),先有 object ,然后讓 object 實(shí)現(xiàn)該接口;抽象類時(shí),先實(shí)現(xiàn)抽象類中的抽象方法,用構(gòu)造方法構(gòu)造出一個(gè)對(duì)象后,再給到 object

以上這篇Kotlin 匿名類實(shí)現(xiàn)接口和抽象類的區(qū)別詳解就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論