trait类似于Java8中的可用带default method的接口。

trait中可以带有实现的方法,也可以带有抽象方法,使用trait的方法是with而混入类中。

 

我们在scala下的org.scala.clazz下创建一个类MyTrait.scala

scala入门-07特质类(trait)的使用

定义一个特质类 Logger

scala入门-07特质类(trait)的使用

定义MyLogger类 实现特质类Logger

scala入门-07特质类(trait)的使用

调用:

scala入门-07特质类(trait)的使用

PS:我们这里使用trait是使用extends,这是因为MyLogger没有继承其他类火灾trait

子trait可以覆盖实现父traitd的方法:

scala入门-07特质类(trait)的使用

调用:

scala入门-07特质类(trait)的使用

如果子trait在如果覆盖父trait中已经实现的方法必须使用override关键字:

scala入门-07特质类(trait)的使用

定义抽象类Account和class MyAccont

scala入门-07特质类(trait)的使用

调用:

scala入门-07特质类(trait)的使用

这是demo属于在一个对象中混入trait

相关文章: