前言
在上一節(jié)中,我們介紹了抽象類
的使用宙地,本節(jié)讓我們來學(xué)習(xí)下接口
的使用璧函。
今天要介紹的內(nèi)容有:
- 接口介紹
- 接口的使用
2.1 接口中的抽象方法
2.2 接口中的實體方法
2.3 接口中的屬性
一. 接口介紹
Java
與kotlin
的開發(fā)中,都遵循一個原則蹦漠,那就是:單繼承部凑。但是為了實現(xiàn) "多繼承" 效果露乏,于是便有了接口
的定義。在kotlin
中涂邀,接口也是能多繼承的瘟仿。聲明一個接口類的關(guān)鍵字仍然為interface
,
接口與抽象類一樣,都是默認為open
類型比勉,所以它們在類聲明前不需要加open
關(guān)鍵字修飾劳较。
在kotlin
中的接口
具有以下特征:
- 實現(xiàn)接口或接口的繼承都用符號
:
(kotlin中無extend
和implement
關(guān)鍵字) - 接口不能定義構(gòu)造函數(shù)
- 接口內(nèi)部的需要被重寫的方法都默認是抽象類型
- 接口中可以存在某個已經(jīng)被實現(xiàn)的方法(在
Java
中不行)驹止,且此方法默認為open
類型 - 接口類中允許聲明抽象屬性,實現(xiàn)該接口的類必須重載該屬性兴想。抽象屬性前的
open
和abstract
關(guān)鍵字也可以省略幢哨。
二. 接口的使用
2.1 接口中的抽象方法
接口中的抽象方法,作為其實現(xiàn)類嫂便,需要去重寫接口中的抽象方法捞镰,實例如下:
//接口類
interface Dog {
//open修飾可省略
fun getTest():String
}
繼承該接口的類DogTwo
:
class DogTwo : Dog {
override fun getTest(): String {
return "此處為重寫方法"
}
}
因為接口
中無構(gòu)造函數(shù)
一說,所以毙替,接口的繼承是實現(xiàn)類名 :接口類名
的形式岸售,結(jié)尾沒有()
。然后由于接口Dog
中的方法getTest()
是抽象方法厂画,所以作為實體類的DogTwo
必須重寫該方法凸丸。
2.2 接口中的實體方法
在kotlin
中一個重要變化是接口可以包含實體方法
。且接口中所有方法都默認是open
的袱院,所以該接口的實現(xiàn)類可重寫接口中的實體方法屎慢,示例如下: