抽象类 abstract
特点:
- 1.不能new。无法实例化。
- 2.充当其他类的父类。抽象的方法和属性在子类中具体去实现。
定义:
抽象类是一个包含一个或多个抽象方法的类。抽象方法是不带任何实现的方法。抽象类也可以包含具体的方法和属性。
-
定义抽象属性:var|val 属性名:类型 一个属性没有初始化,没有值
-
定义抽象方法:def 方法名():String 只声明没有实现方法。
基本案例:
package level02
// 抽象类 abstract
// 1.不能new。无法实例化。
// 2.充当其他类的父类。抽象的方法和属性在子类中具体去实现。
// class ,抽象?
// 稳定的工作?(抽象)
// 老师,公务员,医生(具体)
object class10 {
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 class11 {
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()
}
}