最近在学习scala语言,记录下学习心得。

scala的extend和with是怎么用的?

1extend后面可以接类和特质(trait)

class A{

}

trait B{

}

比如:

 

class C extends A{

}

class D extends B{

}

2如果 extends和with同时使用则类比如放在前面

 

比如:

class WithClass extends A with B {

}

下面错误:

class WithClass extends B with A {

}

3比如先有extends后有with

下面错误:

class E with B{

}

4trait的用发和class一样,trait可以继承class

比如:

 

trait G extends B with F{

}

trait H extends A{

}

 

 

 

5静态对象也可以继承

比如

 

object B extends A with B{

}

6对象后面可以用with混入特质,但是不能用extends

比如:

 

object FF{
def main(args: Array[String]): Unit = {
new A() with F
}
}

7with可以有多个,extends只能有一个

比如:

 

object B extends A with B with H{

}