博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Scala特质
阅读量:7281 次
发布时间:2019-06-30

本文共 501 字,大约阅读时间需要 1 分钟。

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

 

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

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

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

 

转载地址:http://ehzjm.baihongyu.com/

你可能感兴趣的文章
7.2 main函数
查看>>
Foundation HTML5 Canvas中的2处错误
查看>>
chcapter 11 熵和信息
查看>>
GFS文件系统
查看>>
面向对象数据库NDatabase_初识
查看>>
HDU1319 POJ1595 UVA406 UVALive5490 ZOJ1312 Prime Cuts【素数筛选+打表】
查看>>
事务的特性及事务的隔离级别(转)
查看>>
转:如何正确彻底删除webpack 全局或是局部?
查看>>
【Python】Symbol Review
查看>>
电脑 F键(功能键)的具体作用
查看>>
004-软件质量保证&QC/QA
查看>>
选择排序的实现以及性能测试
查看>>
基于snowfall的玫瑰花瓣飘落效果
查看>>
linux之cut用法
查看>>
结交比自己优秀的人
查看>>
Home键和back键下 Activity的生命周期变化
查看>>
用MotoMidMan给L7批量安装java程序
查看>>
C语言中main函数之前可以进行赋值作吗?
查看>>
WKWebView Cookie注入
查看>>
组合数据类型,英文词频统计
查看>>