语法:
class 子类名 extends 父类名 { 类体 }
(1)子类继承父类的属性和方法
(2)scala是单继承
注意事项:
1.继承的子类能够直接使用父类的属性和方法
2.继承是运行父类的构造器
3.在运行子类的主构造器之前会先运行父类的主构造器
4.继承的本质是在类声明中单独继承一个父类的构造器
5.在继承父类的有参构造器的时候,需要保证子类的主构造器参数要多于继承的构造器,并且名字是相同的
class Person(){
println("父类的主构造器")
var name:String = "zhangsan"
def sayHi():Unit = {
println(s"hi $name")
}
def this(name: String) = {
this()
println("父类的辅助构造器")
this.name = name
}
}
class Student(name:String,age:Int) extends Person(name:String){
println("子类的主构造器")
def this(name: String) = {
this(name,18)
println("子类的辅助构造器")
}
运行结果:
父类的主构造器
父类的辅助构造器
子类的主构造器
子类的辅助构造器