Scala 面向对象(九):特质(接口) 二

1 带有具体实现的特质

说明:和Java中的接口不太一样的是特质中的方法并不一定是抽象的,也可以有非抽象方法(即:实现了的方法)。

 2 带有特质的对象,动态混入

1)除了可以在类声明时继承特质以外,还可以在构建对象时混入特质,扩展目标类的功能

2)此种方式也可以应用于对抽象类功能进行扩展

3)动态混入是Scala特有的方式(java没有动态混入),可在不修改类声明/定义的情况下,扩展类的功能,非常的灵活,耦合性低 。

4)动态混入可以在不影响原有的继承关系的基础上,给指定的类扩展功能。

3 叠加特质

基本介绍

构建对象的同时如果混入多个特质,称之为叠加特质,

那么特质声明顺序从左到右,方法执行顺序从右到左。

目的:分析叠加特质时,对象的 构建顺序,和执行方法的顺序

 

 

叠加特质注意事项和细节

1)特质声明顺序从左到右。

2)Scala在执行叠加对象的方法时,会首先从后面的特质(从右向左)开始执行

3)Scala中特质中如果调用super,并不是表示调用父特质的方法,而是向前面(左边)继续查找特质,如果找不到,才会去父特质查找

4)如果想要调用具体特质的方法,可以指定:super[特质].xxx(…).其中的泛型必须是该特质的直接超类类型

本文来自博客园,作者:秋华,转载请注明原文链接:https://www.cnblogs.com/qiu-hua/p/13262792.html

原文地址:https://www.cnblogs.com/qiu-hua/p/13262792.html