scala的trait之我见
来源:互联网 发布:tcpdump 端口 抓包 编辑:程序博客网 时间:2024/05/21 08:57
trait近似于java的interface,但也不完全等同。比如,trait可以没有任何的abstract方法,就跟一个普通类一样。
它是被mixin到子类中(动态或静态),而非继承到子类,为何这么说,因为extend一个trait,相当于继承这个trait的超类,同时mixin这个trait。
从某种意义上说,trait兼具“能力抽象”和“能力实现”两方面的特点,前者用C++里public继承的术语讲是is-a,后者用C++里private继承的术语讲是has-a。所以,scala的trait同时具有is-a和has-a两种特点。
一般说来,如果一个trait起到的是类似java interface的用途,我会这样写:
class Derived extends BaseTrait
等价于C++里的:
class Derived public BaseTrait
而如果要具备某些utility函数的能力,我会这样写:
class Derived extends AnyRef with SomeFuncTrait
等价于C++里的
class Derived private SomeFuncTrait
阅读全文
0 0
- scala的trait之我见
- Scala之Trait的使用
- scala学习之:trait的理解
- Scala 之 trait 关键字
- Scala之特质Trait
- Scala之trait
- scala之trait理解
- Scala Trait 的线性化
- Scala 有趣的Trait
- Scala的Trait
- Scala的trait
- scala的trait
- scala学习记录之trait
- scala学习之特质(trait)
- scala基础之特质trait
- scala学习13之与trait同名的object对象
- 【scala 特质】Scala的Trait特质使用
- Scala:trait
- 【树状数组 区间更新区间查询】code
- 【MPI学习4】MPI并行程序设计模式:非阻塞通信MPI程序设计
- 面试题:模拟实现strcpy函数
- listview + imageloder多条目加载
- triangulation method中的midpoint method and Linear triangulation method
- scala的trait之我见
- java的回调函数
- hdu———2955”Robberies”
- OpenGL中VBO及VAO区别
- xsj的Java学习笔记——JDBC之Java连接数据库的基本步骤
- hdu6168
- HDU 5445 Food Problem ACM/ICPC 2015 Changchun Online(二进制优化多重背包)
- 【MPI学习5】MPI并行程序设计模式:组通信MPI程序设计
- python 时间格式 及 转换 文件时间说明