最近开始系统的研究下scala
trait字面意思是特质或者特征,这里翻译成特征比较合适。
scala中trait的意义和java中接口很类似,但是trait支持实现,也就是说在scala的trait中方法可以是抽象方法,也可以是带实现的非抽象方法。
另一个重要的与java interface的不同点,scala可以在一个class实例化的时候通过with关键字混合进一个trait。with关键字用来实现包装器的功能。
利用上面提到的特性,来实现一个简单的AOP
定义一个SchoolTrait,添加一个抽象方法,不需要将方法声明为abstract,特征中未被实现的方法默认就是抽象的
package test trait SchoolTrait { def study() }
定义一个ClassTrait,ClassTrait继承于SchoolTrait,并重写父类SchoolTrait的study方法
package test trait ClassTrait extends SchoolTrait{ abstract override def study()={ //上课前向老师问好 println("=====Hello Teacher=====") //调用原来的处理 super.study println("=====Goodbye Teacher=====") //下课后向老师道别 } }
下面用一个测试类TeachClass,来进行验证
package test class TeachClass extends SchoolTrait{ def study(){ println("*** start math cource ***"); } } object TeachClass { def main(agrs : Array[String]){ val test = new TeachClass with ClassTrait test.study } }
查看运行结果
=====Hello Teacher=====
*** start math cource ***
=====Goodbye Teacher=====
相关推荐
Scala Trait(特征) 1.Scala中没有接口(interface)的概念 2.特质用于在类之间共享程序接口和字段,类似Java接口 3.特质是字段和方法的集合,可以提供字段和方法实现 4.类和单例对象都可以扩展特质(extends) 5....
scala编程特性
自己用scala实现的朴素贝叶斯算法。最近学习machine learning,由于之前学习了spark,于是使用scala尝试写写代码
不到一百行的代码教你在spark平台中使用scala实现kmeans算法。简单易懂,大量注释。适合初学者参考理解。本程序在intelliJ IDEA2016.1.1 中编程,运行在spark1.6.1 scala2.10.4本地模式下运行成功。 数据集:(其实...
完整的ID3决策树算法,采用了scala语言来实现,代码完整。
CrossCuttingConcern_Scala 在 Scala 中使用面向切面编程 (AOP) 实现横切关注
一个介绍用Scala和GridGain实现云计算的PPT,英文的.
差分进化算法的Scala实现_Scala_代码_下载
实时计算项目Scala结合spark实现
scala-js-java-time, 在JDK8中,java.time的Scala.js 实现 scalajs-java-time scalajs-java-time 是用于的java.time API的bsd许可 reimplementation,它支持在 Scala.js 项目中使用这里 API 。用法只需将以
glicko2-scala Scala中实现的Glicko2排名系统
使用scala实现dvd系统的管理,新增dvd,删除dvd,外借,归还等模块
Scala语法简明教程.pdf
响应式架构 消息模式Actor实现与Scala.Akka应用集成 响应式架构 消息模式Actor实现与Scala.Akka应用集成
此文档是讲解实战Scala,希望对喜欢大数据的同学有所帮助!!! 学习Scala语言,不仅仅意味着熟悉新的API,更重要的是一种思维方式的转变。从原有的面向对象编程(OO)到函数式编程(FP)的思想。本书面向实际的使用场景...
本书介绍Scala的基础特性,采用短小精悍的“原子”解构Scala语言的元素和方法。一个“原子”即为一个小型知识点,通过代码示例引导读者逐步领悟Scala的要义,结合练习鼓励读者在实践中读懂并写出地道的Scala代码。...
scala 2.12.1 linux unix版
scala语言和python一样都是交互式的语言,操作简单。这是wordcount的scala实现,简单明了,比java实现简单很多,希望对大家有所帮助
Ataraxer 国际象棋:Scala描述用Scala编程语言简单实现国际象棋游戏。