理解抽象类
类本身就是对对象的抽象,抽象类就是对类的抽象,就是一种更加模糊的类。
定义
抽象类是一个包含一个或多个抽象方法的类。抽象方法是不带任何实现的方法。抽象类也可以包含具体的方法和属性。
目的
抽象类的主要目的是为子类提供公共的接口和部分实现,并确保子类实现抽象方法。
定义抽象类
定义抽象属性
var|val 属性名:类型 一个属性没有初始化,没有值。
定义抽象方法
def 方法名():String 只声明没有实现方法。
package level02
// 抽象类 abstract
// 1. 不能new。无法实例化。
// 2. 充当其他类的父类。 抽象的方法和属性在子类中具体去实现。
// class, 抽象?
// 稳定的工作 (抽象)
// 老师,公务员,医生(具体)
object zzz15 {
abstract class job() {
// 具体属性
var name:String = "小花"
// 具体方法
def hello():Unit = {
println("hello...")
}
// 抽象的属性:它没有具体的属性值
var age:Int
// 抽象的方法:没有方法体
def sayHello():Unit
}
def main(args:Array[String]): Unit = {
new job()
}
}
继承抽象类
子类继承了抽象类,它就必须去实现所有抽象属性和抽象方法。
package level02
// 抽象类 abstract
// 1. 不能new。无法实例化。
// 2. 充当其他类的父类。 抽象的方法和属性在子类中具体去实现。
object zzz16 {
abstract class AICar() {
// 抽象属性. 没有属性值,是抽象的
var typeTh:String
// 抽象方法
def autoRun():Unit
}
class XiaoMi extends AICar {
var typeTh = "视觉+雷达技术"
def autoRun(): Unit = {
println(s"小米公司的自动驾驶技术")
}
}
def main(args:Array[String]): Unit = {
val su7 = new XiaoMi()
su7.autoRun()
}
}