接口
Kotlin的接口与Java几乎完全一致
定义一个接口:
用Student实现这个接口:
class Student(name : String , age : Int) : Study {
override fun readBooks() {
println(name + ' is reading.')
}
override fun doHomework(){
println(name + ' is doing homework.')
}
}
熟悉Java的人一定指定,Java的继承用的extends,实现接口用的是implements,而Kotlin统一使用:。
现在我们可以再main()函数中编写如下代码来调用这两个接口中的函数
fun main() {
val student = Student('Jack',19)
doStudy(student)
}
fun doStudy(study : Study) {
study.readBooks()
study.doHomework()
}
不过Kotlin还增加了一个功能:
允许对接口中定义的函数进行默认实现。
话不多说,上代码:
interface Study {
fun readBooks()
fun doHomework() {
println('do homework default implementation.')
}
}
这时会发现,Student只会强制要求实现readBooks一个函数了。
函数的可见性修饰符
默认修饰项:
Kotlin抛弃了Java中的default,引入了新的概念:internal,表示只对同一模块的类可见。protected在Java与Kotlin中也有所不同,具体可见下表:
public | 所有类可见 | 所有类可见(默认) |
private | 当前类可见 | 当前类可见 |
protected | 当前类、子类、同一包路径下的类可见 | 当前类、子类可见 |
default | 同一包路径下的类可见(默认) | 无 |
internal | 无 | 同一模块中的类可见 |
参考:
《第一行代码Android(第三版)》---郭霖
文章为作者独立观点,不代表股票交易接口观点