scala——traits
来源:互联网 发布:大恒加密软件破解 编辑:程序博客网 时间:2024/05/17 02:16
Traits, 类似于java中的接口,是用来定义object的方法。类似JAVA 8,在scala中,traits中的方法不是必须全部实现,可以为某个方法定义好默认的方法体,如:
trait Similarity { def isSimilar(x: Any): Boolean def isNotSimilar(x: Any): Boolean = !isSimilar(x)}
以上的trait定义了2个方法,isSimilar(),isNotSimilar(); 其中,isSimilar()类似JAVA中的抽象方法,并没有提供实现,而isNotSimilar()方法提供了默认的实现,由此,若class实现此trait时,只需要提供isSimilar()的实现即可。scala中,通过多继承来结合traits和class。
如:
class Point(xc: Int, yc: Int) extends Similarity { var x: Int = xc var y: Int = yc def isSimilar(obj: Any) = obj.isInstanceOf[Point] && obj.asInstanceOf[Point].x == x}object TraitsTest extends App { val p1 = new Point(2, 3) val p2 = new Point(2, 4) val p3 = new Point(3, 3) println(p1.isNotSimilar(p2)) println(p1.isNotSimilar(p3)) println(p1.isNotSimilar(2))}输出为:
falsetruetrue
0 0
- scala——traits
- Scala——Traits
- Scala入门到精通——第十节 Scala类层次结构、Traits初步
- Scala入门到精通——第十节 Scala类层次结构、Traits初步
- Scala之Traits
- Scala(3)-Traits
- 探索Scala(2)-- Traits
- C++—Traits编程技法
- Scala 的Value Class 和 Universal Traits
- 第十节 Scala类层次结构、Traits初步
- C++——Traits编程技法
- STL的榨汁机——type traits
- traits
- traits
- traits
- Traits
- Traits
- STL源码剖析——Traits编程技术
- Android中,对SQLite的‘批处理’操作
- 存储班长信息的学生类(2)
- AFNetworking 2.0 新特性讲解之AFHTTPSessionManager
- 【CodeForces】C. Drazil and Factorial
- drawable包对应手机分辨率,像素密度,dp,dip,sp,px,pt简单分析
- scala——traits
- 代码训练营——TreeSet比较器
- Android Studio使用OpenCV的配置方法
- mvware虚拟机安装ubuntu
- C#二进制文件读写
- PIM SM + IGMP Snooping 适用性测试
- TypeError: KeyboardSwitch() missing 8 required positional arguments
- Iwfu-GitHub--FoldAbleLayout可折叠组件学习(二)
- 第七届蓝桥杯——第五题||抽签