我有一个实现一个方法的抽象类。
如何访问参数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)
}
}
谢谢。
最佳答案
定义internalValue
为val
:
abstract class Value(val internalValue: Int)
或者如果您担心封装(名称
internalValue
所建议的),则可以使用private val
:abstract class Value(private val internalValue: Int)
完全不声明任何修改与
private[this]
类似,实际上是等效的(?),这意味着:只有Value
的此特定实例才能访问此私有(private)字段。