毕加索类

35 阅读1分钟

抽象类。

    1.有关键字:abstract
    2.有抽象成员。只有属性名,没有具体的值  没有  等号
    3.不能被new
    4.作用:给其他的子类立一个标准!
抽象属性:只有属性名,没有具体的值!!!
举个例子
        找工作的条件
        具体:
            工资14500
            五险一金
        不具体:
            工资高   (抽象)
            老板好   (抽象)
abstract class DreamJob() {
  var money:Double
  var vacation:Int
  var boss:String
}
class PE extends DreamJob{
  var money: Double = 14500
  var vacation: Int = 4
  var boss: String = "无人"
}

def main(args: Array[String]): Unit = {
  val pe1 = new PE()
  println(pe1.money)
}                          结果:14500

现在,换一种说法

抽象类。

    1.有关键字 abstract
    2.1.抽象成员。只有属性名。没有具体的值  没有  等号。
        2.具体成员。
    3.子类要实现所有的抽象成员!
    

屏幕截图 2025-11-19 102402.png

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 = {
  val pe1 = new PE()
  println(pe1.money)
  println(pe1.vacation)
  println(pe1.boss)
  pe1.addMoney()
  pe1.getMoney()
}                 结果:14500.0
                        4
                        无人
                        发工资:15950.000000000002
那么,当你不满意具体成员的话,想要重写,就可以用到override了
这是父类的具体成员
以下是操作代码:
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
  }

  override def getMoney(): Unit = {
    println(s"上银行卡:${money}元")
  }
}

def main(args: Array[String]): Unit = {
  val pe1 = new PE()
  println(pe1.money)
  println(pe1.vacation)
  println(pe1.boss)
  pe1.addMoney()
  pe1.getMoney()
}                  重写结果:
                        上银行卡:15950.000000000002