初出茅廬在學習,君若有不喜之處,吾願聽君之見,然存己身之斷!海納百川,但存己見!
Kotlin繼承
凡是能看到這裏,相信各位都是程序員吧,但是程序員也有不同,有做Web前端的,有做後臺的,也有做移動端的!做這些方向的技術人員都是程序員,所以,可以理解爲繼承自程序員,來表述各位的專業方向!這就是繼承!可以參考:Java 學習之路 類的繼承
拉出來(Java 學習之路 類的繼承)文章中的貓和老虎
Java中的繼承通過 extends 關鍵字來實現!Kotlin 則通過 “ : ” 來實現,接下來就用繼承來實現上方的關係,先只實現貓咪那一個分支!
首先創建Cat類
open class Cat {
var skill = " 我會上樹 "
var dislike = " 我討厭洗澡 "
}
在這裏在類前加入了open關鍵字,它的作用是表明這個類是可以被繼承的,如果不加,則表明這個類不可以被繼承!
創建黃上這個貓,並繼承自貓類:
class CatYellowUp : Cat() {
var name = "我是貓黃上"
}
繼承使用 “ : ” ,後面接的是繼承的類,並加括號!代表 CatYellowUp類 繼承自 Cat類!
創建紅桃貓,也是如此:
class CatRedPeach : Cat() {
var name = "我是貓紅桃"
}
這樣就實現了最基本的繼承關係!之後在main函數中運行它!
fun main() {
val yellowUp = CatYellowUp()
val redPeach = CatRedPeach()
//打印黃上
println(yellowUp.name + yellowUp.skill + yellowUp.dislike)
//打印紅桃
println(redPeach.name + redPeach.skill + redPeach.dislike)
}
運行結果:
Kotlin構造
構造分爲 主構造函數 和 次構造函數 ,Kotlin中每個類都會有一個默認不帶有參數的主構造函數,當然,你也可以給它加入一些參數。
主構造函數
主構造函數沒有函數體,直接定義在類名之後,舉個例子:
class Study(var name: String) {
fun study() {
println(name + " 在學習Kotlin")
}
}
此時在main函數中調用就要傳入這個參數
fun main() {
Study("CSDN女神").study()
}
如果需要繼承,可以這麼寫,舉例 CSDN女神類 繼承自那個寫好的Cat類,當然,我沒有貓的屬性!
class CsdnGoddess(val par: String) : Cat() {
}
次構造函數
次構造函數通過 constructor 關鍵字來實現,舉個例子
Study:
class Study {
var str = ""
constructor(name: String) {
str = name + " 在學習Kotlin"
}
fun study() {
println(str)
}
}
Main:
fun main() {
Study("CSDN女神").study()
}
注意點
結果是一樣的!值得注意的是:當一個類主構造函數和次構造函數同時出現時,所有的次構造函數都必須調用主構造函數! 代碼舉例:
class CsdnGoddess(var name: String, age: String) {
constructor(name2: String) : this(name2, "") {
}
}
Kotlin接口
在Java中,實現接口用關鍵字 implements,但在Kotlin中不是,而是使用 “ : ”,沒錯,無論是繼承還是實現接口都是使用冒號,如果需要繼承並實現接口,那麼只需要用逗號分割即可!如下:繼承自Cat並實現Studys接口!
創建Studys接口:
interface Studys {
fun study()
fun sleep()
}
實現Studys接口:
class CsdnGoddess(var name: String) : Cat(), Studys {
override fun study() {
println(name + "學習")
}
override fun sleep() {
println(name + "睡覺")
}
}
之後便是重寫方法!運行試一下!
fun main() {
CsdnGoddess("CSDN女神").study()
CsdnGoddess("CSDN女神").sleep()
}
本章小結
這就是一些基本的使用方法,有很多跟Java很相似,接下來要學習Java中所沒有的一些東西!
初出茅廬在學習,君若有不喜之處,吾願聽君之見,然存己身之斷!海納百川,但存己見!