类的继承(2)

44 阅读1分钟

(一)带参 构造器 的写法

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

要点如下:

1. 父类构造器正常写。

2. 在写子类构造器时:

(1)如果某个属性可以从父类中继承过来,那么这些属性就不要添加任何的修饰符(val,var都不加)如果这属性是子类自己特有的,就需要补充修饰符;

(2)在父类构造器时,直接传入对应的参数。

代码演示:

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

  // 子类: 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

  }
}

其中name和age是从父类Animal中继承来的所以不需要val和var,而color是子类自己的属性,所以要加var修饰