(一) 抽象类重写
如果子类中对抽象类中的方法定义不满意,仍可以使用override去覆盖的。
重写时具体属性,方法和抽象属性,方法要一一重写
代码演示:
abstract class AICar() {
// 1.具体属性
var name:String = "car"
val color:String = "black"
// 2.具体方法
def run():Unit = {
println("AICar run......")
}
// 3.抽象属性,没有属性值
var price:Double
// 4.抽象方法,没有方法体
def autoRun():Unit
}
class xiaoMi extends AICar {
//重写
//1.具体属性
name = "小米" //对于var的属性,直接覆盖
override val color = "流光紫" //对于val的属性,要添加override
//2.具体方法
override def run(): Unit = {
println("小米 run......")
}
//实现
//3.实现 抽象属性
var price = 28.8
//4.实现 抽象方法
override def autoRun(): Unit = {println("小米自动驾驶")}
}
def main(args: Array[String]): Unit = {
var c1 = new xiaoMi()
c1.autoRun()
}
}