為に
sealed trait User {...}
sealed trait Trader extends User {...}
trait AuthObject
trait AuthUserObject {
def authorize[U <: User](u: U): Boolean
}
trait AuthTraderObject extends AuthUserObject {
def authorize[T <: Trader](t: T): Boolean
}
object HasPaidTax extends AuthTraderObject {
def authorize[T <: Trader](t: T): Boolean = t.hasPaidTax
}
これはビルドしません。エラー:
エラー:(15, 7) タイプ [U <: users.User](u: U)Boolean の特性 AuthUserObject でメソッド authorize をオーバーライドしています。メソッド authorize には互換性のない型があります def authorize[T <: Trader](t: T): Boolean ^
トレーダーのみが税金を支払うため、ユーザーに限定AuthTraderObject
する必要があります。Trader
このオーバーライドはどのように可能ですか?