抽象类 abstract
- 一个抽象类(加了abstract修饰的),不能被new。 一个类不能被用来创建对象,那么这个类具体有什么用呢?就是人的父类!
- 可以定义抽象方法,在子类中去实习
理解抽象类
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()
}
}