服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - Android - Kotlin 匿名类实现接口和抽象类的区别详解

Kotlin 匿名类实现接口和抽象类的区别详解

2022-11-23 13:34afunyusong Android

这篇文章主要介绍了Kotlin 匿名类实现接口和抽象类的区别详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

我就废话不多说了,还是上代码吧

接口:

?
1
2
3
4
5
interface OnBind {
 
 fun onBindChildViewData(holder: String, itemData: Any, position: Int)
 
}
?
1
2
3
4
5
lesson.does(object : OnBind {
 override fun onBindChildViewData(holder: String, itemData: Any, position: Int) {
  println(holder + itemData + position)
 }
})

抽象类:

?
1
2
3
4
5
abstract class AbstractOnBind {
 
 abstract fun onBindChildViewData(holder: String, itemData: Any, position: Int)
 
}
?
1
2
3
4
5
lesson.does(object : AbstractOnBind() {
 override fun onBindChildViewData(holder: String, itemData: Any, position: Int) {
  println(holder + itemData + position)
 }
})

看到区别了吗?哈哈,看不到没关系,我告诉你。

他们之间唯一的区别就是调用时的下面这句,抽象类多了一个括号。

object : OnBind
object : AbstractOnBind()

就这么一点区别,其实本质上是完全不一样的。

在实现接口时,object 代替了 java 中 new 一个对象,在这里“:“ 号后紧跟接口,接口没有构造方法,代表了object实现了这个接口;

而在实现抽象类的时候,抽象方法后边有(),可以理解为调用了抽象方法的构造方法,“new“出了一个对象后,赋给了object。

总结一下:为便于理解可以这么想(实际原理可能并不是这样),接口时,先有 object ,然后让 object 实现该接口;抽象类时,先实现抽象类中的抽象方法,用构造方法构造出一个对象后,再给到 object

以上这篇Kotlin 匿名类实现接口和抽象类的区别详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。

原文链接:https://blog.csdn.net/afanyusong/article/details/77866953

延伸 · 阅读

精彩推荐
  • AndroidAndroid studio将Module打包成Jar的方法

    Android studio将Module打包成Jar的方法

    这篇文章主要介绍了Android studio将Module打包成Jar的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    Now,DayBreak10102022-08-13
  • Androidandroid实现微信朋友圈发布动态功能

    android实现微信朋友圈发布动态功能

    这篇文章主要为大家详细介绍了android实现微信朋友圈发布动态功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    Join下班了吗4932022-11-21
  • AndroidAndroid自定义View实现五子棋小游戏

    Android自定义View实现五子棋小游戏

    这篇文章主要为大家详细介绍了Android自定义View实现五子棋小游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    wzjhoutai7432022-11-04
  • Androidandroid byte[] 和short[]转换的方法代码

    android byte[] 和short[]转换的方法代码

    这篇文章主要介绍了android byte[] 和short[]转换的方法代码,有需要的朋友可以参考一下...

    Android开发网11142021-02-22
  • Androidandroid之自定义Toast使用方法

    android之自定义Toast使用方法

    有时我们的程序使用默认的Toast时会和程序的整体风格不搭配,这个时候我们就需要自定义Toast,使其与我们的程序更加融合,使用自定义Toast,首先我们需要...

    Android开发网11362020-12-31
  • Androidandroid从资源文件中读取文件流并显示的方法

    android从资源文件中读取文件流并显示的方法

    这篇文章主要介绍了android从资源文件中读取文件流并显示的方法,涉及Android针对文件的读取及显示技巧,具有一定参考借鉴价值,需要的朋友可以参考下...

    华宰11942021-03-27
  • AndroidAndroid开发之开关按钮用法示例

    Android开发之开关按钮用法示例

    这篇文章主要介绍了Android开发之开关按钮用法,结合实例形式分析了Android开关按钮的具体实现、布局与功能设置相关操作技巧,需要的朋友可以参考下...

    水中鱼之19997442022-10-12
  • AndroidAndroid自定义View实现圆环带数字百分比进度条

    Android自定义View实现圆环带数字百分比进度条

    这篇文章主要为大家详细介绍了Android自定义View实现圆环带数字百分比进度条,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    热木星11092022-09-08