54.scala编程思想笔记——使用特征

54.scala编程思想笔记——使用特征

欢迎转载,转载请标明出处:http://blog.csdn.net/notbaron/article/details/50447607
源码下载连接请见第一篇笔记。

在Scala中,可以将模型划分为恰当的部分。而有些语言则强制进行笨拙的抽象。

         特征以及他们的混合是这些工具中最强大的,特征不仅使得语法变得优雅而有意义,并且可以防止代码重复。

         因此:

n  优先是使用特征而不是更具体的类型

n  将模型划分成相互独立的部分

n  延迟具体化

特征和抽象类的主要差别是特征不能有构造器参数。

例如:

importcom.atomicscala.AtomicTest._

 

traitAerobic {

  val age:Int

  def minAerobic = .5 * (220 - age)

  def isAerobic(heartRate:Int) =

    heartRate >= minAerobic

}

 

traitActivity {

  val action:String

  def go:String

}

 

classPerson(val age:Int)

 

classExerciser(age:Int,

  val action:String = "Running",

  val go:String = "Run!") extends

  Person(age) with Activity with Aerobic

 

val bob =new Exerciser(44)

bob.isAerobic(180)is true

bob.isAerobic(80)is false

bob.minAerobicis 88.0

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值