类和对象

37 阅读1分钟
  1. 类和对象(一个类 Class,多个对象)
  2. new 创造对象,new XXXX ()
  3. 构造函数,构造器
  4. 辅助构造器 this
  5. private, override, toString, equals, this
  6. apply 单例模式
  7. 伴生类 伴生对象
  8. 多个类之间的关系:继承
    好处:不劳而获。
    重写:子类对父类的同名方法进行重写!
    父类和子类的构造器调用顺序
package level02

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

  // 子类 继承 父类
  class NoBody extends Boss {
  }

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

override

重写:子类对父类的同名方法进行重写

package level02

object Class13 {
  class Boss {
    def test(): Unit = {}
    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()
  }
}
package level02

object Class14 {
  class Father() {
    println("Father 构造器被调用")
  }

  class Son extends Father() {
    println("Son 构造器被调用")
  }

  def main(args: Array[String]): Unit = {
    // new Father()
    new Son()
  }
}
package level02

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

  // 子类 中华田园犬
  // 子类带参构造器
  // 1. 继承父类的属性。不用写 val, var 修饰符
  // 2.自己的新属性,加上var,val修饰符
  // 父类构造器
  // 直接传入参数,不用写属性的类型
  class RuralDog(name: String, age: Int, var color:String) extends Dog(name, age) {
    println("RuralDog 的构造器...")
  }

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

00CFF50F.gif

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