scala学习手记32

来源:转载

继续上一节。

狗当然是人类的好朋友。但是藏獒呢?这玩意儿又蠢又笨又凶狠,肯定不能算很多人的好朋友了。其实,刚才那句话还可以修正一下下:我们接受的狗才是我们的好朋友。

用程序怎么实现呢?在java里面,可以使用组合来实现这样的逻辑,仅仅使用接口还是有些勉强的。而scala则可以在实例一级混入trait:

trait Friend{

val name : String

def accompany() = println("Your friend " + name + " accompanies you")

}

class Dog(val name : String)

val bob = new Dog("Bob") with Friend

bob.accompany()

上面的代码在创建Dog类的时候没有继承Friend trait,而是在创建实例的时候才使用with关键字混入了Friend。从这里可以看出Scala给予了我们极大的灵活性:可以把类的所有实例当作trait,也可以只选择需要的实例当作trait。如果想把trait用于事先存在的类上,后者就显得有用了。

再来看下上面的程序的执行结果:

#######

分享给朋友:
您可能感兴趣的文章:
随机阅读: