Factory Methodパターン & Abstract Factoryパターン。
abstract class 親 { def の子: 子 }なんていうか色々とゴメンナサイ。
abstract class 子
class カエル extends 親 { def の子 = new オタマジャクシ }
class オタマジャクシ extends 子 { println("カエルの子はカエル") }
class トンビ extends 親 { def の子 = new タカ }
class タカ extends 子 { println("トンビがタカを産む") }object Main {
def main(args: Array[String]) = {
val かえる = new カエル
val かえるの子 = かえる の子
val とんび = new トンビ
val とんびの子 = とんび の子
}
}