Scala中继承的定义为在原有类的基础上定义一个新类,原有类称为父类,新类称为子类
定义:在原有的基础上定义一个新类,原有类称为父类,新类称为子类。
class 子类名 extends 父类名 { 类体 }
【问】当子类从父类继承的方法不能满足需要时,子类需要有自己的行为,怎么办?
此时使用override可以重写父类方法。
class Aniaml(){
var leg=4
def run():Unit={
println("animal run......")
}
}
//继承,不劳而获
class Dog extends Aniaml(){
leg=3//对于var修饰的父类的属性,可以直接覆盖
//用override重写(覆盖)父类的同名的方法
override def run():Unit={
println(s"${leg}条腿的Dog run......")
}
}
object aaa {
def main(args: Array[String]): Unit = {
//实例化一个对象:new一个对象
// var a1=new Aniaml()
//a1.run()
var d1=new Dog()
d1.run()
}
}
先执行父类构造器,再执行子类构造器。
class Aniaml(var name:String,var age:Int){
println(s"父类-构造器Animal正在运行...${name} ${age}")
var leg=4
def run():Unit={
println("animal run......")
}
}
//继承,不劳而获
class Dog(name:String,age:Int) extends Aniaml(name,age){
println(s"子类-构造器Animal正在运行...${name} ${age}")
leg=3//对于var修饰的父类的属性,可以直接覆盖
//用override重写(覆盖)父类的同名的方法
override def run():Unit={
println(s"${leg}条腿的Dog run......")
}
}
object aaa {
def main(args: Array[String]): Unit = {
//实例化一个对象:new一个对象
// var a1=new Aniaml()
//a1.run()
var d1=new Dog("小黑",1)
// d1.run()
}
}
标签:不劳而获,run,Scala,继承,子类,leg,var,new,父类 From: https://blog.csdn.net/Betty_at/article/details/142986188