2

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

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

谢谢你。

4

1 回答 1

4

定义internalValueval

abstract class Value(val internalValue: Int)

或者如果您担心封装(internalValue顾名思义),您可以使用private val

abstract class Value(private val internalValue: Int)

根本不声明任何修改是有效等价(?)类似于private[this]这意味着:只有这个特定的实例Value才能访问这个私有字段

于 2012-10-24T07:58:03.240 回答