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"
    }

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

  • 相关阅读:
    什么是MIME
    bit/byte/英文字符/汉字之间的换算及java八大基本数据类型的占字节数
    js 上传文件大小检查
    java.toString() ,(String),String.valueOf的区别
    java 下载文件的样例
    回调函数分析
    IO流详析
    各个秒之间的换算率
    内边距:
    Less-6【报错+BOOL类型】
  • 原文地址:https://www.cnblogs.com/kongzhagen/p/15136963.html
Copyright © 2011-2022 走看看