scala中的抽象类

53 阅读1分钟

抽象类 abstract

特点:

  • 1.不能new。无法实例化。
  • 2.充当其他类的父类。抽象的方法和属性在子类中具体去实现。

定义:

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

  • 定义抽象属性:var|val 属性名:类型 一个属性没有初始化,没有值

  • 定义抽象方法:def 方法名():String 只声明没有实现方法。

基本案例:

package level02
// 抽象类 abstract
// 1.不能new。无法实例化。
// 2.充当其他类的父类。抽象的方法和属性在子类中具体去实现。

// class ,抽象?
// 稳定的工作?(抽象)
// 老师,公务员,医生(具体)

object class10 {
  
  abstract class Job() {
    // 具体的属性值
    var name:String="小花"
    // 具体的方法
    def hello():Unit={
      println("hello.....")
    }
    // 抽象的属性:它没有具体的属性值
    var age:Int
    // 抽象的方法:没有方法体
    def sayHello():Unit
  }

  def main(args: Array[String]): Unit = {
    new Job()//会报错,不能输出!

    
  }

}

继承抽象类

子类继承了抽象类,它就必须去实现所有抽象属性和抽象方法

基本案例:

小米汽车的自动驾驶

package level02

// 抽象类 abstract
// 1.不能new。无法实例化。
// 2.充当其他类的父类。抽象的方法和属性在子类中具体去实现。


object class11 {

  abstract class AICar() {
    // 抽象属性: 没有属性值,是抽象的
    var typeTh:String
    // 抽象方法
    def autoRun():Unit
  }
class XiaoMi extends AICar{
  var typeTh="视觉 + 雷达技术"
  def autoRun():Unit={
    println(s"小米公司的自动驾驶技术")
  }
}
  def main(args: Array[String]): Unit = {
    val su7=new XiaoMi()

    su7.autoRun()


  }

}