抽象类1

25 阅读1分钟

抽象类 abstract

  1. 一个抽象类(加了abstract修饰的),不能被new。 一个类不能被用来创建对象,那么这个类具体有什么用呢?就是人的父类!
  2. 可以定义抽象方法,在子类中去实习

理解抽象类

abstract class AICar {
  // 抽象方法:没有具体的函数代码。
  def autoEn(): Unit

  // 具体方法
  def autoDrive(): Unit = {
    println("具体方法,自动驾驶……")
  }
}

// 在子类中,一定要去实现父类的所有抽象方法
class SU7 extends AICar {

  // 使用override 去实现这个方法
  override def autoEn(): Unit = {
    println("采用小米独家的无线充电技术,使车款可以充电")
  }
}

def main(args: Array[String]): Unit = {
  // val car1 = new AICar ()
  val su = new SU7()
  su.autoEn()
}

继承抽象类

// 抽象类 abstract
// 1. 一个抽象类(加了abstract修饰的),不能被new。
//   一个类不能被用来创建对象,那么这个类具体有什么用呢? 就是人的父类!
// 2. 可以定义抽象方法,在子类中去实习

// 3.一个抽象类中可以有:
//具体属性 val name:String = "小米"
//具体方法 def autoRun ():Unit = {}
//抽象属性:val name:String 没有具体值的属性。只有属性名和类型。它必须写在抽象类中
//抽象方法:def autoRun ():Unit
//在子类中,要有具体的实现。
object class12 {
  abstract class AICar() {
    val name: String
    def autoRun(): Unit
  }

  class XiaoMi extends AICar {
    val name: String = "xiaomi"
    def autoRun(): Unit = {
      println("小米汽车,自动驾驶......")
    }
  }

  def main(args: Array[String]): Unit = {
    var car1 = new XiaoMi()
    car1.autoRun()
  }
}