Scala的抽象类

抽象类:是一个不能被实例化的类。

           !不可以直接创建对象,而是通过子类创建对象。

  关键字:abstract

     语法:abstract class A{}

举例:

// 定义抽象类:定义标准
// 抽象类是一个特殊的类,它至少包含一个抽象方法
// 抽象方法:没有方法体,只有def和方法名
abstract class AICar(){
  // 具体属性
  var brand = "X"
  val color = "red"

  // 抽象属性:没有 =
  var hasDriver:Boolean

  // 具体方法:有 =
  def run (): Unit = {
    println("run...")
  }
  // 抽象方法
  def autoRun
}

// 定义一个子类来实现(继承)抽象类
class Model3 extends AICar{
  // 子类要实现所有的:抽象方法 + 抽象属性
  var hasDriver = false

  def autoRun(): Unit = {
    println("Model3的自动驾驶技术")
  }
  // 重写具体属性 - var 直接赋值
  brand = "TSL"
  // 重写具体属性 - val 使用override
  override val color:String = "white"

  // 重写具体方法:使用override
  override def run(): Unit = {
    println(s"Model3 run.....${color} ${brand}")
  }
}

object Test18 {
  def main(args: Array[String]): Unit = {
//    抽象类,不能new
//    new AICar()
    val m1 = new Model3()
    m1.run()
    m1.autoRun()
  }
}

你可能感兴趣的:(scala)