// 父类方法
class Person2 {
// 私有的变量
private val name = "leo"
val age = 50
// 把本类的name变成一个方法,方法名随意写
def getName=this.name
}
// 子类方法
class student2 extends Person2{
private val score = "A"
// override写上是重写,不写是覆盖
override
val age=20
// 把本类的score变成一个方法,方法名随意写
def getScore=this.score
// 重写父类里的getName方法,super是调用父类里的方法
override def getName: String = "hhh "+super.getName
}
object client{
def main(args: Array[String]): Unit = {
val person = new Person2
val student = new student2
println(person.getName+" "+person.age)
println(student.getName+" "+student.age)
println(student.getScore)
}
}
运算结果:
注意:
- Scala中,如果子类要覆盖父类中的一个非抽象方法,必须要使用 override 关键字;子类可以覆盖父类的 val 修饰的field,只要在子类中使用 override 关键字即可。
- override 关键字可以帮助开发者尽早的发现代码中的错误,比如, override 修饰的父类方法的方法名拼写错误。
- 此外,在子类覆盖父类方法后,如果在子类中要调用父类中被覆盖的方法,则必须要使用 super 关键字,显示的指出要调用的父类方法。