scala之抽象类

在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 = 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("好电视!!")
    }

}

class HuaweiTv extends Tv{
    override def powerOn(): Unit = {  // 重写父类方法
        println("华为电视开机")
    }

    override def powerOff(): Unit = {
        println("华为电视关机")
    }

    override val logo: String = "华为的Logo"
}

自此可以调用抽象类中的方法及字段了

原文地址:https://www.cnblogs.com/kongzhagen/p/15136963.html