我有一个实现一个方法的抽象类。

如何访问参数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)
    }
}

谢谢。

最佳答案

定义internalValueval:

abstract class Value(val internalValue: Int)

或者如果您担心封装(名称internalValue所建议的),则可以使用private val:
abstract class Value(private val internalValue: Int)

完全不声明任何修改与private[this]类似,实际上是等效的(?),这意味着:只有Value的此特定实例才能访问此私有(private)字段。

09-04 00:07