プログラミング言語 Scala 7冊目
■ このスレッドは過去ログ倉庫に格納されています
0060デフォルトの名無しさん
2011/09/10(土) 16:01:01.60実体化したらそれで終わりなんて継承ツリーの中で使いにくい
自分と同じ型のメンバーを表すだけでも大変
抽象型を使ってみたが妙に不自然な書き方しか思いつかない
abstract class Base {
type TParent <: Base
var parent: Option[TParent] = None
}
class とり extends Base {
override type TParent <: とり
override def toString = "とり"
}
class とんび extends とり {
override type TParent <: とんび
override def toString = "とんび"
}
object AbstractTypeTest {
def main(args: Array[String]) = {
var とり = new とり { type TParent = とり }
とり.parent = Option(new とり { type TParent = とり })
println(とり.parent)
var とんび = new とんび { type TParent = とんび }
とんび.parent = Option(new とんび { type TParent = とんび })
println(とんび.parent)
}
}
■ このスレッドは過去ログ倉庫に格納されています