• scala之特质trait


    特质trait在java中叫做接口, 但是功能要比java强大, 使用with连接可以实现类的多继承

    package cn.qianfeng
    
    object demo_trait {     // 特质在java中叫做接口, 但是比java中接口更加强大
        def main(args: Array[String]): Unit = {
            val clog = new consoleLog
            val flog = new fileLog
            val slog = new socertLog
            clog.log("五月来了,六月还元吗?")
            flog.log("安全文件有两个")
            slog.log("socket 文件也有两份")
    
        }
    }
    
    trait log{  // 定义一个特质
        def log(msg:String)  // 定义抽象方法
        def show: Unit ={    // 定义非抽象方法
            println("trait 中的非抽象方法")
        }
    }
    
    trait secrety{  // 定义一个特质
        def valdate: Unit ={      // 定义非抽象方法
            println("安全你我他, 快乐靠大家!!")
        }
        def log(msg:String): Unit ={   //定义非抽象方法
            println("secret--->" + msg)
        }
    }
    
    class consoleLog extends log{  // 继承log特质
        override def log(msg: String): Unit = {  // 子类必须重写父类中的抽象方法
            println("console--->" + msg)
        }
    
    }
    
    class fileLog extends log{  // 继承log特质
        override def log(msg: String): Unit = {
            println("file--->"+msg)
        }
    }
    
    class socertLog extends log with secrety{}  // 继承log和secertg两个特质,secrety中定义了非抽象方法log,不需要再重写log中的Log方法
  • 相关阅读:
    K210识别水果模型
    一键开关机短路
    Arudino IDE添加STM32官方管理器stm32duino / Arduino_Core_STM32
    ESP32 Ble
    Blynk软件配置及Mixly编程教程
    Laravel安装及配置,完成基础的demo
    electron下载/打包慢?解决办法.....
    ESP32+PHP+MYSQL 搭建自己的物联网平台Demo
    PCA9536读写测试之MicroPython
    MSF实验2
  • 原文地址:https://www.cnblogs.com/kongzhagen/p/15137223.html
Copyright © 2020-2023  润新知