11.19课堂笔记

24 阅读1分钟
  • 抽象:抽象

  • 抽象属性:只有属性名,没有具体的值。

  • 抽象类

    1. 有关键字 abstract
    2. 抽象成员:只有属性名,没有具体的值 没有等号
    3. 不能被 new
    4. 作用:给其他的子类立一个标准!
object class24 {
  // 抽象类
  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 = {
    // // new DreamJob() // 报错
    val pe1 = new PE()
    println
    (pe1.money)
  }
}

2.

  • 抽象类:DreamJob

    • var money:Double // 只有属性名,没有具体的值。
    • var vacation:Int // 抽象属性
    • var name:String = "理想工作"
  • 抽象方法:没有内容,就是一个抽象的方法,它需要在子类中去实现

  • 用法示例

object class25 {
  abstract class DreamJob() {
    var money: Double // 只有属性名,没有具体的值。
    var vacation: Int // 抽象属性
    var name: String = "理想工作"

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

    // 用法示例
    def getMoney(): Unit = {
      println(s"${name}工资:${money}元")
    }
  }

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

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

  def main(args: Array[String]): Unit = {
    // val dj = new DreamJob() // 报错
    val pe1 = new PE()
    pe1.getMoney()
    pe1.addMoney()
    pe1.getMoney()
  }
}

image.png