zoukankan      html  css  js  c++  java
  • Scala 特质

    Java中提供了接口,允许一个类实现任意数量的接口。在Scala中没有接口的概念,而是提供了“特质(trait)”,它不仅实现了接口的功能,还具备了很多其他的特性。

    Scala的特质,是代码重用的基本单元,可以同时拥有抽象方法和具体方法。

    Scala中,一个类只能继承自一个超类,却可以实现多个特质,从而重用特质中的方法和字段,实现了多重继承。

    /**
      * Created by soyo on 17-11-24.
      */
    object 学习Scala {
      trait ID{
        var id:Int
        def currentID():Int
      }
      trait findID{
        def Find(str:String): Unit ={
          println(s"$str")
        }
      }
      //使用extends关键字混入第1个特质,后面可以反复使用with关键字混入更多特质 (这里相当于实现多继承)
      class audi extends ID with findID{
        override var id=100
        override def currentID(): Int = {
          id+=1
          id
        }
      }
      class Porsche extends ID with findID{
        override var id=200
        override def currentID(): Int = {
          id+=2
          id
        }
      }
      def main(args: Array[String]): Unit = {
         val mycar1=new audi()
        val mycar2=new Porsche()
         mycar1.Find("first car!")
        println("first car ID "+mycar1.currentID())
        mycar2.Find("second car!")
        println("second car ID "+mycar2.currentID())
    
      }
    
    }
    

     结果:

    first car!
    first car ID 101
    second car!
    second car ID 202

     

  • 相关阅读:
    使用 Redis 实现排行榜功能
    php sprintf函数
    phpcms v9文章页调用点击量方法
    redis 高级配置
    mysql 子查询优化
    mysql 优化
    Centos 7 安装Anaconda3
    磁盘调度算法
    pycharm设置python文件颜色
    C++禁止使用拷贝构造函数和赋值运算符方法
  • 原文地址:https://www.cnblogs.com/soyo/p/7889527.html
Copyright © 2011-2022 走看看