我有一个实现一个方法的抽象类。
如何访问参数internalValue
(由抽象类构造函数设置?)
abstract class Value(internalValue:Int) {
def equal( v:Value ): Boolean
def notEqual( v:Value ): Boolean = {
//here I get an error on v.internalValue:
//"value internalValue is not a member of Value"
(internalValue != v.internalValue)
}
}
case class Value1(internalValue:Int) extends Value(internalValue){
def equal( v:Value1 ): Boolean = {
//this works correctly
(internalValue == v.internalValue)
}
}
谢谢。
答案 0 :(得分:4)
将internalValue
定义为val
:
abstract class Value(val internalValue: Int)
或者如果您担心封装(名称为internalValue
建议),您可以使用private val
:
abstract class Value(private val internalValue: Int)
根本没有声明任何修改实际上等效于(?),类似于private[this]
,这意味着:只有Value
的这个特定实例才能访问此私有字段