Scala学习笔记--特质

在scala中,特质相当于java中的接口,但是其功能要强大 点多。scala不允许类从多个超类继承
1.如下是一个特质,是具有接口性质的功能
1>log是一个抽象方法,不需要再前面加关键字abstract
这里写图片描述
2>子类实现,使用extends继承。复写方法的时候,def前面不需要加override
这里写图片描述
3>如果你需要多个特质,需要用with关键字
这里写图片描述
4>特质里面不一定都是抽样方法,也可以是实现的方法
这里写图片描述
5>如果log是抽象方法的时候则,复写的时候,里面有super.log调用哪一个特质是不确定的,而且TimestampLogger特质并没有将log方法实现,因此必须在前面加上override和abstract
这里写图片描述
6>Scala中多继承
这里写图片描述
* 构造的顺序是从左往右
* Human首先被构造了,之后 构造TTeacher和PianoPlayer就不会再Human
* 打印结果:
* Human
* TTeacher
* PainoPlayer
* I’m playing piano
* I’m training students.
*/
这里写图片描述
7>AOP的实现
这里写图片描述

调用:
这里写图片描述
上实现的执行过程如下:
* TBeforeAfter”混入”到了Work中,因此在执行t3.doAction的时候,实际上是先去执行TBeforeAfter中的内容的
* 执行期间遇到 super.doAction ==>这个时候指的就是Work中的doAction方法
因此打印结果如下:
Initialization
Working….
Destroyed

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值