抽象类2025.11.19

37 阅读1分钟

package out.production.student1
object test2{
  // 抽象类
  abstract class DreamJob {
    // 抽象属性
    var money:Double// 只有属性名,没有具体的值。
    var vacation:Int
    var boss:String
    // 具体属性
    var name:String = "理想工作"

    // 抽象方法。没有等号,就是一个抽象的方法。它需要在子类中去实现
    def addMoney():Unit

    // 具体方法
    def getMoney():Unit = {
      println(s"发工资:${money}元")
    }
  }

  // 子类:具体类
  class PE extends DreamJob {
    var money: Double = 14500
    var vacation: Int = 4
    var boss: String = "无人"

    def addMoney(): Unit = {
      money *= 1.1
    }
  }

  def main(args: Array[String]): Unit = {
    // new DreamJob() // 报错
    val pe1 = new PE()
    pe1.addMoney()
    pe1.getMoney()
  }
}
  • 抽象类定义领域契约,约束核心属性与行为;
  • 子类实现具体业务,落地差异化逻辑;
  • 领域服务串联模型,封装跨实体的业务流程。