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

     

  • 相关阅读:
    十天冲刺4
    单词统计
    十天冲刺3
    学习进度第十周
    十天冲刺2
    十天冲刺1
    梦断代码阅读笔记03
    学习进度第九周
    [强网杯 2019]Upload
    [2020 新春红包题]1
  • 原文地址:https://www.cnblogs.com/soyo/p/7889527.html
Copyright © 2011-2022 走看看