Kotlin核心编程-多态和扩展

1.多态的不同方式

  • 子类型多态:子类型替换超类型实例
  • 参数多态:泛型
  • 对第三方类进行扩展
  • 特设多态:一个多态函数室友多个不同的实现,依赖于其实参而调用相应版本的函数。

2.扩展:为别的类添加方法、属性

扩展函数、属性:接收者类型.<Type>

标准库中的扩展函数:run、let、also、takeIf

3.Android中扩展的应用

inline fun Activity.snackbar(message: String) = snackbar(find(R.id.content), message)

fun Context.isMobileConnected(): Boolean {}

fun <T : View> Activity._view(@IdRes id: Int): T {
    return findViewById(id) as T
}

4.使用扩展注意事项

扩展接收器:与Kotlin扩展密切相关的接收器,表示为其定义扩展的对象。
调度接收器:扩展被声明成成员时存在的一种特殊接收器,它表示声明扩展名的类的实例。

  • 如果扩展函数式顶级函数或成员函数,则不能被覆盖;
  • 无法访问其接收器的非公共属性;
  • 扩展接收器总是被静态调度。
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。