和Java一樣,任何一個類最多隻能繼承一個父類,但是卻可以實現任意多個接口。
1.簡單使用
首先我們創建一個接口
interface Study {
fun readBook()
fun doHomeWork()
}
讓Student類繼承它
class Student(name: String, age: Int) : Person(name, age), Study {
override fun readBook() {
println(name + " is reading")
}
override fun doHomeWork() {
println(name + " is doing homeWork")
}
}
在Java中繼承使用的關鍵字是extends,實現接口是用的是implements,而在Kotlin中統一使用 : 關鍵字,中間用逗號分隔。另外接口的後面不需要加括號,因爲他沒有構造函數可以去調用。
2.額外功能
爲了使用更加靈活,Kotlin增加了一個額外的功能:允許接口中定義的函數進行默認實現。
interface Study {
fun readBook()
fun doHomeWork(){
println("我是默認實現")
}
}
如果接口中的一個函數擁有了函數體,這個函數體中的內容就是它的默認實現。
我們給doHomeWork增加了函數體,那麼現在當一個類去繼承Study接口時,只會強制要求實現readBook()函數,而doHomeWork則可以自由選擇實現或不實現,不實現時就會使用默認的實現邏輯。