8.scala:特质

Posted bigdataer

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了8.scala:特质相关的知识,希望对你有一定的参考价值。

版权申明:转载请注明出处。
文章来源:http://bigdataer.net/?p=317

总体来说,scala中的特质类似于Java中的接口,但是有别于接口的是特质中既可以有实现方法也可以有抽象方法。

1.特质的定义

使用关键字trait来定义一个特质,如:

scala    5行

trait Log{
 def info(msg:String)
 def debug(msg:String){print(msg)}
}

2.特质的使用

通过关键字extends来使用特质,这样,使用了特质的这个类就混入了特质的实现方法和抽象方法。其中,实现方法可以直接使用,抽象方法可以在类中实现,需要注意的是重写这些方法不需要使用注解override。如:

scala    7行

class Cat extends Log{
 //实现抽象方法
 def info(msg:String){print("I am a cat")}
 //直接使用已实现的方法
 debug("I am running")
}

3.特质的叠加

可以为一个类添加多个特质,使用关键字with连接。如果添加的多个特质里面有相同的方法,可以使用super[T].method()来指定使用哪个特质里面的方法。如……[阅读全文]

以上是关于8.scala:特质的主要内容,如果未能解决你的问题,请参考以下文章

Scala进阶之App特质

代码精进之路——关键的六个特质

Scala的特质

特质不能变成对象

scala——关键字trait的使用

8. Scala面向对象编程(高级部分)