Kotlin继承
kotlin所有类的基类是Any,类比java中的Object类
Any 默认提供了三个函数:
equals()
hashCode()
toString()
如果一个类要被继承,可以使用 open 关键字进行修饰
open class Person(var name:String,var age:Int){
}
class Student(name:String,age:Int,var no:String,var score:Int):Person(name, age){
}
// 测试
fun main(args: Array<String>) {
val s = Student("Name", 18, "S12346", 89)
println("学生名: ${s.name}")
println("年龄: ${s.age}")
println("学生号: ${s.no}")
println("成绩: ${s.score}")
}
重写
重写主要有:方法重写和属性重写
方法重写体会super关键词的使用,属性重写时你可以用一个var属性重写一个val属性,但是反过来不行。因为val属性本身定义了getter方法,重写为var属性会在衍生类中额外声明一个setter方法
open class ClassA{
open fun f(){ //open修饰可以被重写
println("ClassA的f方法")
}
fun a(){
println("ClassA的a方法")
}
}
interface InterfaceB{
fun f(){ //接口的成员变量默认是 open 的
println("InterfaceB的f方法")
}
val count:Int
}
class MyClass() : ClassA(),InterfaceB{
override val count: Int //属性重写
get() = 0
override fun f(){ // 方法重写
super<ClassA>.f()
super<InterfaceB>.f()
}
}
fun main(args: Array<String>) {
val c = MyClass()
c.f();// ClassA的f方法 InterfaceB的f方法
}
如果文章帮到你,请不吝点赞,谢谢!