第一段代码:
class Test{}
object Driver extends Test{
}
第二段代码:
abstract Fruit{
val name :String
val color :String
}
object Fruit{
object Apple extends Fruit("apple","red")
val menu=List(Apple)
}
问题:
(1) scala中 为什么么object也可以使用extends 继承自class或者trait ,如何理解
(2)第二段代码中为什么 extens Fruit("A","B") 这里带了两个参数??
感谢各位答疑!
补充:
object
可以扩展类或特质,其结果是一个扩展了指定类或特质的对象,同时拥有在对象定义中给出的所有特性。object
和class
的区别是:你可以理解为object
是单例模式,它只能有一个;而class
可以创建多个。abstract Fruit
是什么东西……而且大括号括起来的是代码块,Fruit
里面两个值都是val
,你必须改成小括号使用主构造器方法。如下可通过编译:这里
extens Fruit("A","B")
带了两个参数,就是在继承时构造,毕竟里面两个值你都用了val
。object Fruit
就是abstract class Fruit
的伴生对象了。