//定义抽象类:定义标准
//抽象类是一个特殊的类他至少包含一个抽象方法
//抽象方法:没有方法体只有def和方法名
abstract class AICar(){
def run():Unit={
println("run....")
} //抽象方法
def autoRun
}
//定义一个子类来实现(继承)抽象类
class Model3 extends AICar{
//子类要实现所有的抽象方法
def autoRun(): Unit = {
println("Model3的自动驾驶技术")
}
}
object Test18 {
def main(args: Array[String]): Unit = {
val m1=new Model3()
//抽象类,不能new
//new AICar
m1.run()
m1.autoRun()
}
}
完成版
//定义抽象类:定义标准
//抽象类是一个特殊的类他至少包含一个抽象方法
//抽象方法:没有方法体只有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的自动驾驶技术")
}
//重写具体方法。使用override
override def run(): Unit = {
println("MOdel3 run......")
}//重写具体属性 -var 直接赋值
brand="TSL"
//重写具体属性 -val使用override
override val color: String ="white"
}
object Test18 {
def main(args: Array[String]): Unit = {
val m1=new Model3()
//抽象类,不能new
//new AICar
m1.run()
// m1.autoRun()
}
子类继承抽象类时,必须要实现抽象类的抽象属性和方法