zoukankan      html  css  js  c++  java
  • 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"
    }

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

  • 相关阅读:
    数据库中随机返回n条数据的方法
    sql中NULL之恨
    数据库性能的查询优化特刊待续
    sql中exists替换in的区别
    代码的效率问题看一下代码
    检测数据库性能的方法
    Linux随堂1
    设置网页的图标
    C# 线程、timer例句
    转:1.2 Oracle表空间的操作
  • 原文地址:https://www.cnblogs.com/kongzhagen/p/15136963.html
Copyright © 2011-2022 走看看