Scala case类如何定义固有类(非抽象类)方法和值?(斯卡拉)
我有一个基类有一些函数和val,我想在我的固有case类中固有它们怎么办? 这是我的基类:Scala case类如何定义固有类(非抽象类)方法和值?(斯卡拉),scala,oop,inheritance,Scala,Oop,Inheritance,我有一个基类有一些函数和val,我想在我的固有case类中固有它们怎么办? 这是我的基类: class Base(val name:String, val number:int) extends Sometrait { def copy(name:String=this.name, number:int=this.number){ new Base(name, number) } } 我想写下: case class SomeCase(val name:Strin
class Base(val name:String, val number:int) extends Sometrait {
def copy(name:String=this.name, number:int=this.number){
new Base(name, number)
}
}
我想写下:
case class SomeCase(val name:String, val number:int, val id:int)extends Base(String, number){
...
}
但编译器总是告诉我:
value **** needs `override' modifier social.scala /scalatest/src/scalatest line 35 Scala
但我真的想做的只是做为内在的而不是凌驾,如何去做
我需要把child类作为case类,因为它在slick中很容易使用。是关于如何在slick中将类用作表内容类的另一个问题,有人给了我非常好的答案,但我仍然大量使用。因为Base和SomeCase中的name和number字段都是用val定义的,没有任何诸如private之类的修饰符,它们都是公共成员并参与继承。由于这些字段在基类和子类中具有相同的名称,因此必须在子类中的val name和val number之前添加覆盖修饰符:
case class SomeCase(override val name: String,
override val number: Int,
val id: Int) extends Base(name, number) { ... }