Kotlin 匿名類實(shí)現(xiàn)接口和抽象類的區(qū)別詳解
我就廢話不多說了,還是上代碼吧
接口:
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)文章
AndroidStudio接入U(xiǎn)nity工程并實(shí)現(xiàn)相互跳轉(zhuǎn)的示例代碼
這篇文章主要介紹了AndroidStudio接入U(xiǎn)nity工程并實(shí)現(xiàn)相互跳轉(zhuǎn),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-12-12Android性能優(yōu)化之RecyclerView分頁加載組件功能詳解
這篇文章主要為大家介紹了Android性能優(yōu)化之RecyclerView分頁加載組件功能詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09Android Handler之消息循環(huán)的深入解析
本篇文章是對(duì)Handler消息循環(huán)進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05Android開發(fā)之背景動(dòng)畫簡(jiǎn)單實(shí)現(xiàn)方法
這篇文章主要介紹了Android開發(fā)之背景動(dòng)畫簡(jiǎn)單實(shí)現(xiàn)方法,涉及Android背景動(dòng)畫簡(jiǎn)單設(shè)置與使用技巧,需要的朋友可以參考下2017-10-10Android 開發(fā)中根據(jù)搜索內(nèi)容實(shí)現(xiàn)TextView中的文字部分加粗
最近遇到一個(gè)需求,需要做一個(gè)搜索功能。搜索的內(nèi)容需要加粗顯示。實(shí)現(xiàn)方法很簡(jiǎn)單,下面通過本文給大家分享Android 開發(fā)中根據(jù)搜索內(nèi)容實(shí)現(xiàn)TextView中的文字部分加粗樣式,非常不錯(cuò),需要的朋友參考下2017-03-03