Kotlin编程实战——类与对象(05)

一 概述

  • 类与继承
  • 属性和字段
  • 接口(interface )
  • 函数式(SAM)接口
  • 可见性修饰符
  • 扩展
  • 数据类(data class)
  • 密封类
  • 泛型
  • 嵌套类与内部类
  • 枚举类
  • 对象表达式与对象声明
  • 类型别名
  • 内联类(inline class)
  • 委托
  • 委托属性

二 类与继承

  • 继承(open override )
  • 抽象类(abstract)
  • 伴生对象

三 属性和字段

  • 属性
  • 编译期常量
  • 延迟初始化属性与变量(lateinit )
  • 覆盖属性
  • 委托属性

四 接口(interface )

  • 实现接口
  • 接口中的属性
  • 接口继承
  • 解决覆盖冲突(super)

五 函数式(SAM)接口

  • 函数式接口或 SAM(单一抽象方法)接口
  • SAM 转换
  • 函数式接口与类型别名比较

六 可见性修饰符

  • 四个可见性修饰符:private、protected、internal 、public
  • 类和接口
  • 模块

七 扩展

  • 扩展函数(MutableList<Int>.swap)
  • 扩展是静态解析的(总是取成员函数)
  • 可空接收者(Any?.toString())
  • 扩展属性(List<T>.lastIndex)
  • 伴生对象的扩展
  • 扩展的作用域
  • 扩展声明为成员

八 数据类(data class)

  • 数据类 data class
  • 在类体中声明的属性
  • 复制(copy)
  • 数据类与解构声明(val (name, age) = User())
  • 标准数据类(Pair 与 Triple)

九 密封类

  • 密封类 sealed class
  • 用来表示受限的类继承结构
  • 是枚举类的扩展
  • 密封类的一个子类可以有可包含状态的多个实例
  • 使用 when 表达式

十 泛型

  • 协变的(covariant)与逆变性(contravariance)
  • 声明处型变(泛型接口 Source)
  • out:生产者+协变
  • in:消费者+逆变
  • 使用处型变:类型投影
  • 星投影(Function<*, *>)

十一 嵌套类与内部类

  • 嵌套类
  • 内部类(标记为 inner 的嵌套类)
  • 匿名内部类

十二 枚举类

  • 初始化
  • 匿名类
  • 在枚举类中实现接口
  • 使用枚举常量

十三 对象表达式与对象声明

  • 对象表达式
  • 对象声明(单例模式)

十四 类型别名

类型别名(typealias)

十五 思维导图