- scala同样适用
extends
关键字来实现继承。scala只支持类的单继承,但是可以继承多个trait
- scala类的层次结构的根是
Any
,没有父类 - 可以在子类中定义父类中没有的字段和方法
- 可以在子类中重写父类的方法
- 重写非抽象类方法必须使用
override
关键字 - 重写抽象类方法override可以写或者省略
- 重写非抽象类方法必须使用
示例1
class Person {
var name = "super"
def getName = this.name
}
class Stu extends Person
object myExtends {
def main(args: Array[String]): Unit = {
val p1 = new Person()
val p2 = new Stu()
println(p1.name)
println(p2.name)
p2.name = "child"
println(p1.name)
println(p2.name)
p1.name = "super super"
println(p1.name)
println(p2.name)
}
}
输出
super
super
super
child
super super
child
示例2:单例对象的继承