scala之抽象類
阿新 • • 發佈:2021-08-13
在scala中是如何定義抽象類和抽象欄位的呢, 抽象欄位不能賦值,抽象方法不能有方法
package cn.qianfeng object demo_Abstract { def main(args: Array[String]): Unit = { val t = new HuaweiTv t.powerOn() t.powerOff() println(t.logo) } } abstract class Tv{ //抽象類的建立 var color:String = _ //非抽像欄位,有賦初始值val logo:String //抽像欄位,可以不賦初始值 def powerOn() // 抽象方法的建立 def powerOff() // 抽象方法的建立 def show: Unit ={ // 非抽象方法的建立 println("好電視!!") } }
所以在子類中對於抽象類和抽象欄位必須要實現重寫
package cn.qianfeng object demo_Abstract { def main(args: Array[String]): Unit = { val t = newHuaweiTv t.powerOn() t.powerOff() println(t.logo) } } abstract class Tv{ //抽象類的建立 var color:String = _ //非抽像欄位,有賦初始值 val logo:String //抽像欄位,可以不賦初始值 def powerOn() // 抽象方法的建立 def powerOff() // 抽象方法的建立 def show: Unit ={ // 非抽象方法的建立 println("好電視!!") } } class HuaweiTv extends Tv{ override def powerOn(): Unit = { // 重寫父類方法 println("華為電視開機") } override def powerOff(): Unit = { println("華為電視關機") } override val logo: String = "華為的Logo" }
自此可以呼叫抽象類中的方法及欄位了