抽象类

41 阅读1分钟

类本身就是对对象的抽象,抽象类就是对类的抽象,就是一种更加模糊的类

定义:抽象类是一个包含一个或多个抽象方法的类。抽象方法是不带任何实现的方法。抽象类也可以包含具体的方法和属性。

目的:抽象类的主要目的是为子类提供公共的接口和部分实现,并确保子类实现抽象方法

抽象类的基本语法:

/*
抽象类。
  1·有关键字 abstract
  2·
    1`有抽象成员。只有属性名,没有具体的值,没有 等号。
    2`具体成员
   3·子类要实现所有的抽象成员!
     如果要重写父类具体成员,使用override
  4·不能被 new
  5·作用:给其他的子类立一个标准!
 */

object w43 {
    // 抽象类
    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()
      //println(pe1.money)
      pe1.addMoney()
      pe1.getMoney()
    }
}