理解抽象类
类本身就是对对象的抽象,抽象类就是对类的抽象,就是一种更加模糊的类
定义:抽象类是一个包含一个或多个抽象方法的类。抽象方法是不带任何实现的方法。抽象类也可以包含具体的方法和属性
目的:抽象类的主要目的是为子类提供公共的接口和部分实现,并确保子类实现抽象方法
定义抽象类
定义一个Scala的抽象类:abstract class A{ }。
定义一个智能汽车类
abstract class AICar(){
def autoRun():Unit
var name:String
}
定义抽象属性:var|val 属性名:类型 一个属性没有初始化,没有值
定义抽象方法:def 方法名():String 只声明没有实现方法。 可以对抽象类使用new来实例化吗?
继承抽象类
子类继承了抽象类,它就必须去实现所有抽象属性和抽象方法
package TestAbstract
abstract class AICar(){
def autoRun():Unit
var name:String
}
class XiaoMi extends AICar(){
def autoRun(): Unit = {
println(s"New Car $name auto dirve")
}
var name: String = "小米"
}
object Main {
def main(args: Array[String]): Unit = {
var nc = new XiaoMi()
nc.autoRun()
}
}
第二课时
抽象类重写
如果子类中对抽象类中的方法定义不满意,仍可以使用override去覆盖的。
class XiaoMi extends AICar(){
def autoRun(): Unit = {
println(s"New Car $name auto dirve")
}
override def Say() = { }
var name: String = "小米"
}