类的继承

19 阅读1分钟

(一)继承的概念和基本语法

  • 定义:在原有类的基础上定义一个新类,原有类称为父类,新类称为子类。 class 子类名 extends 父类名 { 类体 }
object Class11 {
  class Boss {
    // 父类的成员变量,子类可继承
    var car = "豪车"
    def power(): Unit = {
      println("Boss 有权力....")
    }
  }

  class NoBody extends Boss

  def main(args: Array[String]): Unit = {
    val b = new NoBody()
    println(b.car)
    b.power()
  }
}

重名方法的重写

object class12 {
  class Boss {
    def test(): Unit = {}
    def power(): Unit = {
      println("Boss 有权力....")
    }
    var car = "豪车"
  }

  // 子类 Nobody 继承父类 Boss
  class Nobody extends Boss {
    // 子类自己的方法
    def run(): Unit = {
    }
    // 重写父类的 power 方法
    override def power(): Unit = {
      println("老莫,我想吃鱼了")
    }
  }

  def main(args: Array[String]): Unit = {
    val b = new Nobody()
    println(b.car)
    b.power()
    b.run()
  }
}

继承的好处之复用代码


object Class13 {
    // 父类 Father
    class Father {
      println("Father 构造器被调用")
    }

    // 子类 Son 继承自 Father
    class Son extends Father {
      println("Son 构造器被调用")
    }

    def main(args: Array[String]): Unit = {
      new Son()
    }
  }
object class14 {
  // 父类 Dog,带参构造器
  class Dog(var name: String, var age: Int) {
    println(s"Dog ${name}${age} 构造器被调用")
  }

  // 子类 RuralDog,继承自 Dog 并带参构造
  class RuralDog(name: String, age: Int) extends Dog(name, age) {
    println("RuralDog 的构造器...")
  }

  def main(args: Array[String]): Unit = {
    new RuralDog("旺财", 3)
  }
}