Scala 语法特性 (三): 面向对象的独特点
特质Traits
特质(Traits)用于在类(Class)之间共享程序接口(Interface)和字段(Fields),是Scala独有的一种特性,类似于Java 8类和对象(Objects)可以扩展特质,但是特质不能被实例化,因此特质没有参数。
假设,实现一个特质并利用一个类扩展该特质。
混入
当某个特质被用于组合类时,被称为混入。一个类只能有一个父类但是可以有多个混入(分别使用关键字extend和with)。混入和某个父类可能有相同的父类。
样例类(Case Class)
在Java中,有一种类只包含get和set方法,这在网站开发与数据库绑定的DAO设计模式中比较常见,而Scala样例类在Scala,默认使用apply方法来处理对象构造,可以通过copy来复制其对象
执行结果:
假设,利用样本例实现一个模式匹配:
执行结果:
单例对象
Scala对象无需New对象,实现示例如下:
执行结果:
生成伴生对象
还可以将类和object放在同一个文件中,形成伴生对象。
执行结果:
参考资料
书籍《Spark Streaming 实时流式大数据处理实战》
版权声明: 本文为 InfoQ 作者【大规模数据处理学习者】的原创文章。
原文链接:【http://xie.infoq.cn/article/0ac22b5639e6b17b3ac7b6db5】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论