抽象类:是一个不能被实例化的类。
!不可以直接创建对象,而是通过子类创建对象。
关键字: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()
}
}
标签:run,val,Scala,var,override,抽象类,def
From: https://blog.csdn.net/yuhuhuh/article/details/143568392