//定义一个类
class Animal() {
println("父类 Animal的构造器被调用")
var legs = 4
def say():Unit ={
println("Animal say....")
}
def run():Unit ={
println("Animal run....")
}
}
//定义一个子类Dog,继承自父类Animal
//继承的好处:(1) 不劳而获
class Dog extends Animal() {
println("子类 Animal的构造器被调用")
//用override 去覆盖(重写)父类的同名方法
//在子类中,可以通过 super 来访问父类
//在子类中,可以通过 this 来访问自己
override def say():Unit ={
println(s"Dog say.....${this.legs}")
//super.say
}
}
object Test4{
//封装一个函数,它的参数类型是父类类型
def getSay(a:Animal):Unit ={
a.say()
}
def main(args: Array[String]): Unit = {
//var a1 = new Animal()//实例化子类的对象,会先调用父类构造器,再调用子类的构造器
var d1 = new Dog()
//getSay(a1)//吃(苹果) 吃(面条)
//getSay(d1)
}
}
标签:Scala,继承,子类,多态,say,Animal,println,父类,def
From: https://blog.csdn.net/2401_83599586/article/details/142912674