类的继承:二

40 阅读1分钟

带参构造器的写法

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

1. 父类构造器正常写。

2. 在写子类构造器时:

要点如下:

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

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

object N01 {
  // 当父类,子类都存在带有参数的构造器的时候,如何进行参数传递?
  // 父类: 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()

  }
}