创建Student.kt类,添加sno和grade字段
class Student {
var sno = ""
var grade = 0
}
继承Person,首先,之前创建的Person是不可被继承的,如果想继承,需要做两件事情才行
- 使Person变成可继承,在Java中,类本身就可被继承,kotlin中任何一个非抽象类默认都是不可被继承的,这点跟val的存在类似,一个类如果被继承,那么他无法预知子类会如何实现,可能产生一些未知风险. Effective Java中提到,如果一个类不是专门为继承而设计,那么就一个主动将它加上final,很明显,kotlin中遵循了这条规范
我们使用open关键字来使一个类可以被继承
open class Person {
...
}
- 让Student继承Person类.Java中,继承的关键字是extends,kotlin中变成了冒号
class Student : Person() {
var sno = ""
var grade = 0
}
注意,冒号之后的类名是有括号的,可能是kotlin在这方面设计的太复杂了,因为他还涉及主构造函数、次构造函数等方面的知识
欢迎关注这个不是技术号的公众号,我们聊聊别的。