Scala-Scala语言的面向对象(七)Scala中的trait(特质)

Posted on 2020-06-05 07:27  MissRong  阅读(205)  评论(0)    收藏  举报

大数据技术之Scala

======第一篇:Scala编程语言=====

Scala语言的面向对象(七)Scala中的trait(特质)

Java Scala 中是单继承,C++中,可以多继承,可应用于区块链。

trait就是抽象类trait跟抽象类最大的区别:trait支持多重继承。

 

 Scala代码实现:

package mianxiangduixiang.lei

/**
  * Scala中的特质-trait
  * 定义两个父类,定义两个trait
  * 人、动作
  * 子类:学生
  */
trait Human{
  //定义抽象的字段
  val id:Int
  val name:String
}
trait Action{
  //定义一个抽象的函数
  def getActionName():String
}
//定义一个子类
class Students(val id:Int,val name:String) extends Human with Action{
  //需要实现getActionName方法
  override def getActionName(): String = "Action is running"
  //extends Human with Action,Action2就是多重继承
}
object Trait {
  def main(args: Array[String]): Unit = {
    //创建学生对象
    var s1=new Students(1,"Tom")
    println(s1.id+"\t"+s1.name)
    println(s1.getActionName())
  }
}

 

 

博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3