类的继承

40 阅读1分钟
1.类和对象(一个类class,多个对象)
2.new创建对象,new xxx()
3.构造函数,构造量
4.辅助构造器 this
5.private,override,toString,equals,this
6.apply 单列模式
7.伴生类和伴生对象
8.多个类之间的关系:继承**

定义:在原有类的基础上定义一个新类,原有类称为父类,新类称为子类。class子类名 extend父类名{类体}

好处:不劳而获。
重写:子类对父类的同名方法进行重写!

父类和子类的构造器调用顺序:先调用父类的构造器,再调用子类的构造器


package level06

object level06
class Boss() {
  def power():Unit = {
    println("Boss 有权利....")
  }
  var car = "豪车"
}
//    子类    继承     父类
class NoBody extends Boss{
def run():Unit = {
}
  override def power():Unit = {
    println("老莫,我想吃鱼")
  }
  def main(args:Array[String]):Unit = {
  val b = new NoBody()
  println(b.car)
  b.power()
  b.run()  
  }
}

子类 中华田园犬
子类带构造器
1.继承父类的属性。不用写val,var 修饰符
父类构造器
直接传入参数属性,不用写val,var 修饰符
父类构造器

** 直接传入参数,不用写属性的类型**

package level02

object Class10 {
  //父亲
class Dog(var name:String,var age:Int) {
    println(s"Dog ${name},${age} 构造被调用")
  }

  //子类 中华田园犬
  //子类带构造器
  // 1.继承父类的属性。不用写val,var 修饰符
  //父类构造器
  //    直接传入参数属性,不用写val,var 修饰符
  // 父类构造器
  //     直接传入参数,不用写属性的类型
  class RUralDog(name:String,age:Int) extends Dog(name,age){
    println("RuralDog 的构造器...")
  }
  def main(args:Array[String]):Unit = {
    new RUralDog("旺财",3)
  }
}

屏幕截图 2025-11-12 102318.png