kotlin
的接口与java
的接口相比较而言有了一部分改动:
- 在
kotlin
中interface
不仅可以声明函数,还可以对函数进行实现.与类唯一不同的是它们是无状态的,所以属性需要子类去重写.类需要去负责保存接口属性的状态.
接口的作用:可以被用来从类中提取出相似行为的通用代码
例如:所有的Activity中基本都有ToolBar
,我们可以把所有Activity共享Toolbar
的代码存放在一个接口中.这样就会减少代码量,
在使用的时候把toolbar布局添加到不同activity的xml布局中,之后创建一个接口用来处理toolbar事件:
1. 设置title的内容和色值
2. 设置toolbar背景色
3. 指定是否显示上一步的导航动作
4. 滚动时的toolbar动画
5. 给所有的activity设置相同的菜单,甚至行为
……
然后让我们定义 ToolbarManager
interface ToolbarManager {
val toolbar: Toolbar //接口是无状态的,所以属性可以被定义,但是不能赋值。子类会实现这个接口并重写这个属性
// 另一方面,我们可以不使用重写来实现无状态的属性。也就是说属性不需要维护一个 backup field,而是手动处理(使用getter和setter)
var