Scala特质

特质:trait是Scala里代码复用的基础单元。特质封装了方法和字段的定义,并可以通过混入到类中重用它们。不像类的继承那样,每个类都只能继承唯一的超类,类可以混入任意个特质。它们最常用到的两种方式:拓宽瘦接口为胖接口和定义可堆叠的改变。

 

这个特质名为Philosophical。它没有声明超类,因此和类一样,有个缺省的超类AnyRef。它定义了一个方法,叫做philosophize,具体的。这是个简单的特质,仅够说明特质如何工作。一旦特质被定义了,就可以使用extends或with关键字,把它混入到类中。下列这种情况下隐式地继承了特质的超类,从特质继承的方法可以像从超类继承的方法那样使用。

特质同样也是类型:phil的类型是Philosophical,一个特质。因此,变量phil可以被初始化为任何混入了Philosophical特质的类的对象。

特质就像是带有具体方法的Java接口,不过其实它能做的更多。特质可以,比方说,声明字段和维持状态值。实际上,你可以用特质定义做任何用类定义做的事,并且语法也是一样的,除了两点。第一点,特质不能有任何“类”参数,也就是说,传递给类的主构造器的参数。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值