Scala继承的案例补充

24 阅读1分钟

带参构造器的写法

如果父类和子类都有自己的带参构造器,问题就比较复杂一些,我们在写子类的时候就要传入父类的构造器参数。

要点:

  1. 父类构造器正常写。
  2. 在写子类构造器时:
  • (1)如果某个属性可以从父类中继承过来,那么这些属性就不要添加任何的修饰符(val,var都不加)如果这属性是子类自己特有的,就需要补充修饰符;
  • (2)在父类构造器时,直接传入对应的参数。

继承代码如下:

package Luwenzhen

object class10 {
   //父类:name,age
   class Animal(val name:String,var age:Int) {
     println(s"父类构造器。。。${name}${age}")

     def eat():Unit={
       println(s"${name} ${age} eating...")
     }
   }
  //子类:name,age,color
  class Dog(name:String,age:Int,var color:String) extends Animal(name,age){
    println(s"子类构造器。。。${name} ${age} ${color}")
  }

  def main(args: Array[String]): Unit = {
    val dog1=new Dog("小白",1,"黑色")
    dog1.eat()
  }
}

运行结果:

父类构造器。。。小白1
子类构造器。。。小白 1 黑色
小白 1 eating...

2025-11-10 14-56-30.JPG