抽象类

27 阅读1分钟

一:定义抽象类 定义抽象属性:var|val 属性名:类型 一个属性没有初始化,没有值 定义抽象方法:def 方法名():String 只声明没有实现方法。 二:继承抽象类 子类继承了抽象类,它就必须去实现所有抽象属性和抽象方法

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

object class017 {
  //抽象类
  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 = {
    //new DreamJob()//报错
    val pe1 = new PE()
    pe1.addMoney()
    pe1.getMoney
  }
}