使用特征的对象构造函数

时间:2014-01-05 03:15:24

标签: scala constructor traits

这是我的课程我正在尝试为以下内容创建以下构造函数:

class StatsView(name: String, manager: AssetManager, statistics: Statistics) extends Node(name) with Control {
....

这是我尝试使用Node

的构造函数的对象
object Node {
  def apply(name: String) = new Spatial(name) with Node
  def apply() = new Spatial with Node
}

trait Node extends Spatial {

我的问题是Node是导致编译器出现此错误消息的特征:

trait Node is a trait; does not take constructor arguments
  

特质节点是一种特质;不采用构造函数参数

     

类StatsView(name:String,manager:AssetManager,statistics:Statistics)使用Control {

扩展Node(name)

希望你能帮助我。

1 个答案:

答案 0 :(得分:4)

问题是Node(name)只是一个方法调用,所以不能在extends中。你需要写这样的类型:

class StatsView(name: String, manager: AssetManager, statistics: Statistics) extends 
  Spatial(name) with Node { ... }
  

我的问题是我需要调用Node的超级构造函数

由于Node不是类,因此它没有超级构造函数。

相关问题