scala抽象类

37 阅读1分钟

(一)理解抽象类

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

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

(二) 定义抽象类

定义一个Scala的抽象类:abstract class A{ }。

/*
//抽象属性:只有属性名 ,没有具体的值
*抽象类
*1. 有关键字 abstract
*2.有
    1.抽象成员。只有属性名,没有具体的值  没有 等号。
    2.具体成员
* 3不能被new
* 作用:给其他的子类立一个标准
*/
package level02

object class18 {
  //抽象类
  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()
  }
}