Scala构造函数继承

Kam*_*nek 4 inheritance constructor scala

这是一件事:我有一些基本类,例如:

abstract class Car(private val model: String = "no name")
Run Code Online (Sandbox Code Playgroud)

我希望课程扩展Car, for example:

class Mazda(model: String) extends Car(model)
Run Code Online (Sandbox Code Playgroud)

My question is: how to create Mazda instance without given model like that: new Mazda,例如:

abstract class Car(private val model: String = "no name")
Run Code Online (Sandbox Code Playgroud)

我的问题是:如何在没有给定模型的情况下创建Mazda实例:no name并且具有名称的对象Car, for example:

class Mazda(model: String) extends Car(model)
Run Code Online (Sandbox Code Playgroud)

My question is: how to create Mazda instance without given model like that: new Mazda

yak*_*ver 5

要实现您的目标,您必须在子类中定义默认值:

class Mazda(model: String = "no name") extends Car(model)
Run Code Online (Sandbox Code Playgroud)

  • 我认为这可能是你的最终目标.如果您希望有许多不同的类,您可能希望完全采用不同的方法而不依赖于继承.例如,如果您没有向每个子类添加不同的行为或数据,您可能希望使Car具体化并添加make属性. (4认同)