Kotlin面向对象编程
class Person {
var name: String? = null
var age: Int? = null
fun think() {
println("Mr./Ms.$name, who is $age years old, is thinking!")
}
}
fun main () {
val p = Person()
p.name = "Jimmy"
p.age = 20
p.think()
}
在Kotlin中任意一个非抽象类都无法被继承(一个类允许被继承的话,其无法预知子类会如何实现,便存在一些未知风险)
Kotlin中类的主构造函数默认为无参且不存在函数体;但能够显式地为其指定参数,另外还可以借助init结构体为主构造函数实现逻辑
在主构造函数中用关键字val或var进行声明变量将自动被添加为该类的字段,在为子类的主构造函数添加变量时要尤其注意,避免与父类字段造成冲突
open class Person {
var name: String? = null
var age: Int? = null
fun think() {
println("Mr./Ms.$name, who is $age years old, is thinking!")
}
}
//显式地位Student类的主构造函数指定参数,并用init结构体为其实现逻辑
class Student(var sno: String?, var grade: Int?) : Person() {
init {
println("The sno is $sno")
println("The garde is $grade")
}
}